如何将ListPreference初始化为其值之一
我试图设置一个ListPreference项目的defaultValue。
以下是我的preference.xml文件的示例:
<ListPreference android:key="notification_delay" android:title="@string/settings_push_delay" android:entries="@array/settings_push_delay_human_value" android:entryValues="@array/settings_push_delay_phone_value" android:defaultValue="????"> </ListPreference>
这两个数组:
<string-array name="settings_push_delay_human_value"> <item>every 5 minutes</item> <item>every 10 minutes</item> <item>every 15 minutes</item> </string-array> <string-array name="settings_push_delay_phone_value"> <item>300</item> <item>600</item> <item>900</item> </string-array>
当我进入首选项活动时,没有selectListPreference的项目。 我已经尝试在“android:defaultValue”中设置一个像int值1来select“10分钟”,但它不起作用。
<ListPreference android:key="notification_delay" android:title="@string/settings_push_delay" android:entries="@array/settings_push_delay_human_value" android:entryValues="@array/settings_push_delay_phone_value" android:defaultValue="1"> </ListPreference>
任何想法?
您需要指定值 。 所以要得到默认选中的第一个条目,在你的例子中指定defaultValue="300"
。
发生在相同的情况。 指定一致的默认值。 但graphics没有被选中。 我清除了应用程序数据。 然后它按预期工作。 因此,在添加新的XxxPreference项目时,在开发时可能很有用。
除了Sven的回答之外,您还必须在开始活动中调用setDefaultValues()方法。 这将设置一次所有的默认值。
public class MainActivity extends Activity { protected void onCreate(final Bundle savedInstanceState) { // Set all default values once for this application // This must be done in the 'Main' first activity PreferenceManager.setDefaultValues(this, R.xml.preferences, false); ... } }
如果它是来自列表的有效值,则重新安装该应用程序。 它会工作。
- 如何从另一个Android应用程序调用一个Android应用程序
- 如何在Android应用程序中使用Firebase(BaaS)存储电子邮件和密码时包含用户名?
- 升级到Android Studio 2.0后,在Gradle构build过程中发生大量错误
- 如何以编程方式获取android屏幕大小,一劳永逸?
- 如何在Android中通过地址实现谷歌地图search?
- 在Android Studio中更新buildToolsVersion '23 .0.1'后出现内存不足问题
- 如何在非活动类(LocationManager)中使用getSystemService?
- Android Studio – 模糊的方法调用getClass()
- mipmap vs可绘制的文件夹