使用ListPreference时,列表框中不显示内容

在Android项目中使用ListPreference时遇到一个问题,列表框显示为空。问题原因是设置了`android:dialogMessage`属性,移除该属性后列表恢复正常。详细解决步骤及代码示例在博客中分享。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


最近项目用到了ListPreference,网上看了很多例子,都是类似的,感觉也不难,但是自己写的时候,就发现了一个小问题,但是在网上搜来搜去,都没有发现有人提出遇到类似的问题,似乎大家都很顺利哈,=_=。这个问题改起来很简单,但是花了我不少时间才知道问题所在,囧~~~

当我按照网上很多例子所说的,首先在res路径下生成一个新的目录,xml,然后在这个文件夹下新建一个xml文件,如pre.xml,然后在里面进行配置,细节就不说了,直接上xml代码吧,由于是测试代码,所有很多信息都比较随便。如下。

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

<ListPreference
android:title="Time setting"
android:dialogMessage="Choose the number you need"
android:key="timeToRefresh"
android:entries="@array/refreshTimeEntries"
android:entryValues="@array/refreshTimeValues"
android:dialogTitle="Please choose a number"
android:defaultValue="500"
  android:summary="testing"
/>

</PreferenceScreen>

当然,由于上面有引用到一些数据,需要在strings.xml文件中写好,对应片段如下:

<string-array name="refreshTimeEntries">

<item>1s</item>
<item>2s</item>
<item>3s</item>
<item>5s</item>

</string-array>
<string-array name="refreshTimeValues">
<item>100</item>
<item>200</item>
<item>300</item>
<item>500</item>

</string-array>

最后,是我的java代码,如果不做什么响应,代码部分很简单:

import android.os.Bundle;
import android.preference.PreferenceActivity;


public class Test_list extends PreferenceActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.test_list);

}
}

但是,运行的时候就出现问题了,没有报任何的错误,只是弹出的列表框没有显示任何的内容,如下图:


在网上搜索很久,终于找到其中的原因,就是设置ListPreference的属性的时候,不能设置“android:dialogMessage="Choose the number you need" ”这个属性,当把这一行删掉之后,就可以正常显示了,如下图:

至于为什么会这样我目前还不知道,有遇到类似问题的欢迎一起交流一下。在google上的Issuse上已经有人将这个问题反馈了,我的答案也是在这里找到的,这是地址:

http://code.google.com/p/android/issues/detail?id=4497。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值