Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.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 使用多个首选项文件重用PreferenceFragment_Android_Sharedpreferences_Preferences_Preferenceactivity_Preferencefragment - Fatal编程技术网

Android 使用多个首选项文件重用PreferenceFragment

Android 使用多个首选项文件重用PreferenceFragment,android,sharedpreferences,preferences,preferenceactivity,preferencefragment,Android,Sharedpreferences,Preferences,Preferenceactivity,Preferencefragment,场景: 我的android应用程序充当服务器。连接到服务器的客户端有N个。 客户端有一组设置,用户可以从服务器(android应用程序)配置这些设置。因此,基本上我是通过套接字将用户偏好发送到相应的客户端。 所有客户端的设置都相同,但我需要维护每个客户端的设置状态。 例如: 设置集: Settings 1 Settings 2 Settings 3 现在,用户为2个客户端配置上述设置,如下所示: 对于客户1: Settings 1 :true Settings 2 :false Setting

场景: 我的android应用程序充当服务器。连接到服务器的客户端有N个。 客户端有一组设置,用户可以从服务器(android应用程序)配置这些设置。因此,基本上我是通过套接字将用户偏好发送到相应的客户端。 所有客户端的设置都相同,但我需要维护每个客户端的设置状态。 例如:

设置集:

Settings 1
Settings 2
Settings 3
现在,用户为2个客户端配置上述设置,如下所示: 对于客户1:

Settings 1 :true
Settings 2 :false
Settings 3 :false
对于客户2:

Settings 1 :false
Settings 2 :false
Settings 3 :false
现在在android应用程序中,当用户选择client1时,应显示client1特定的集合

问题: 我无法保存客户端设置的状态

我的专业知识: 我是android编程的初学者

我目前的进展情况: 根据我对该场景的理解,我需要创建客户端不同的-2共享首选项文件。 我为设置集创建了一个通用首选项片段。由于所有客户端的设置都是相同的,所以我将重用首选项片段。 我还尝试为每个客户端动态指定首选项文件:

       SharedPreferences sharedPreference = context.getSharedPreferences(
                "<Here I dynamically specify prefs file name>", Context.MODE_PRIVATE);
SharedReferences SharedReference=context.getSharedReferences(
“”,Context.MODE_PRIVATE);
但它不起作用


请帮忙。

回答我自己的问题,希望这能对将来的人有所帮助: 在这种情况下,我们需要创建不同的-2首选项文件。我们可以这样做:

getPreferenceManager().setSharedPreferencesName("preference_file_name");
然后加载特定的首选项文件

getSharedPreferences("preference_file_name", Context.MODE_PRIVATE);