Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我的首选项活动中的对话框首选项不是';他没有得救_Android_Android Preferences_Preferenceactivity - Fatal编程技术网

Android 我的首选项活动中的对话框首选项不是';他没有得救

Android 我的首选项活动中的对话框首选项不是';他没有得救,android,android-preferences,preferenceactivity,Android,Android Preferences,Preferenceactivity,我有一堆EditTextPreferences和一个TimePickerReference(我创建的)以及一个CheckBoxPreference,EditTextPreference或TimePickerReference都没有保存,但复选框保存了。我想这可能是因为我的PreferenceActivity子类中的最小值,但鉴于复选框是如何保存的,我不确定这是否是 我搜索了所有地方,似乎所有的东西都在说偏好应该自动保存,但我找不到任何原因为什么它们不会被保存 以下是我的首选xml文件: 您需

我有一堆EditTextPreferences和一个TimePickerReference(我创建的)以及一个CheckBoxPreference,EditTextPreference或TimePickerReference都没有保存,但复选框保存了。我想这可能是因为我的PreferenceActivity子类中的最小值,但鉴于复选框是如何保存的,我不确定这是否是

我搜索了所有地方,似乎所有的东西都在说偏好应该自动保存,但我找不到任何原因为什么它们不会被保存

以下是我的首选xml文件:


您需要在所有控件(EditTextPreference和TimePickerPreference)中定义
android:key
,以便框架自动保存值


由于您在CheckBoxPreference中定义了它,因此它会自动保存。

您需要在所有控件(EditTextPreference和TimePickerPreference)中定义
android:key
,以便框架自动保存值


因为您已经在CheckBoxPreference中定义了它,所以它会自动保存它。

我也有同样的问题,PreferenceActivity似乎正确地读取了首选项,但在用户更改了某些属性后,我没有看到myPreferences中的更改。在首选项更新后访问首选项之前,您需要做的就是重新创建我的首选项,如下所示:

myPreferences=PreferenceManager.getDefaultSharedPreferences(getApplicationContext());

。。。似乎两个首选项实例没有同步(可能是因为它以某种方式被缓存)。一个实例中的更改不会出现在另一个实例中,尽管它们都是相同的名称(或者都是默认的共享首选项)。

我遇到了相同的问题,首选项活动似乎正确地读取了首选项,但在用户更改了某些属性后,我没有看到myPreferences中的更改。在首选项更新后访问首选项之前,您需要做的就是重新创建我的首选项,如下所示:

myPreferences=PreferenceManager.getDefaultSharedPreferences(getApplicationContext());

。。。似乎两个首选项实例没有同步(可能是因为它以某种方式被缓存)。一个实例中的更改不会出现在另一个实例中,尽管它们都是相同的名称(或者都是默认的共享首选项)。

啊,这很有意义!现在一切似乎都好了。谢谢啊,这是有道理的!现在一切似乎都好了。谢谢
myPreferences=PreferenceManager.getDefaultSharedPreferences(getApplicationContext());