Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.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
Java SharedReferences未更新其值_Java_Android_Sharedpreferences_Android Sharedpreferences - Fatal编程技术网

Java SharedReferences未更新其值

Java SharedReferences未更新其值,java,android,sharedpreferences,android-sharedpreferences,Java,Android,Sharedpreferences,Android Sharedpreferences,下面是我在保存设置函数(DialogFragment)中使用的代码片段: 然后,我通过以下(活动)检索该数据: 这是我的钥匙: public static final String ORDER_BY = "orderBy"; public static final String SEARCH_TERM = "search"; 当键相同时,它为什么不更新值,有什么原因吗 getActivity().getPreferences(Context.MODE_PRIVATE); 不是 Prefere

下面是我在保存设置函数(DialogFragment)中使用的代码片段:

然后,我通过以下(活动)检索该数据:

这是我的钥匙:

public static final String ORDER_BY = "orderBy";
public static final String SEARCH_TERM = "search";
当键相同时,它为什么不更新值,有什么原因吗

getActivity().getPreferences(Context.MODE_PRIVATE);
不是

PreferenceManager.getDefaultSharedPreferences(this);
在两种方法中都使用第二行

从文档中:

检索一个SharedReferences对象,以访问以下首选项: 此活动的私人信息

不是

PreferenceManager.getDefaultSharedPreferences(this);
在两种方法中都使用第二行

从文档中:

检索一个SharedReferences对象,以访问以下首选项: 此活动的私人信息


使用
PreferenceManager
访问共享参考。

使用
PreferenceManager
访问共享参考。

您更新首选项值的代码是正确的

考虑验证输入控件中的值是否确实更改
并验证应用程序是否具有写入首选项的权限。

用于更新首选项值的代码是否正确

考虑验证输入控件中的值是否确实更改
并验证应用程序是否具有写入首选项的权限。

您正在使用两种不同的方法来访问
共享引用文件

第一次使用
getActivity().getPreferences(Context.MODE\u PRIVATE)
调用Activity,它返回一个SharedReferences对象,该对象应该是请求它的活动的私有对象。此SharedReferences对象指向的首选项文件的名称为CLASS_name.xml

第二次使用 返回一个SharedReferences对象,该对象应可用于整个应用程序。此SharedReferences对象指向的首选项文件的名称为PACKAGE_name_preferences.xml


因此,您的问题是,您使用一个文件来写入首选项,而使用另一个文件来读取它们。尝试使用更全局的思想
PreferenceManager.getDefaultSharedReferences(上下文)
来存储与整个应用程序相关的首选项,并且仅使用
Activity.getPreferences(int模式)
来存储仅与特定活动相关的首选项。(然后还要记得使用适当的方法来检索它们)

您使用两种不同的方法来访问
共享引用文件

第一次使用
getActivity().getPreferences(Context.MODE\u PRIVATE)
调用Activity,它返回一个SharedReferences对象,该对象应该是请求它的活动的私有对象。此SharedReferences对象指向的首选项文件的名称为CLASS_name.xml

第二次使用 返回一个SharedReferences对象,该对象应可用于整个应用程序。此SharedReferences对象指向的首选项文件的名称为PACKAGE_name_preferences.xml


因此,您的问题是,您使用一个文件来写入首选项,而使用另一个文件来读取它们。尝试使用更全局的思想
PreferenceManager.getDefaultSharedReferences(上下文)
来存储与整个应用程序相关的首选项,并且仅使用
Activity.getPreferences(int模式)
来存储仅与特定活动相关的首选项。(然后还要记得使用适当的方法来检索它们)

修复了它。非常感谢。将作为公认的答案。这就解决了它。非常感谢。将作为公认的答案。
PreferenceManager.getDefaultSharedPreferences(this);