将PreferenceFragment重用于多个首选项文件

时间:2014-09-05 04:58:45

标签: android sharedpreferences preferences preferenceactivity preferencefragment

情境: 我的android应用程序充当服务器。有N个客户端连接到服务器。 用户可以从服务器(Android应用程序)配置客户端的一组设置。所以基本上我通过套接字将用户首选项发送给相应的客户端。 所有客户端的设置集都相同,但我需要维护每个客户端的设置状态。 例如:

设置集:

Settings 1
Settings 2
Settings 3

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

Settings 1 :true
Settings 2 :false
Settings 3 :false

对于Client2:

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);

但它不起作用。

请帮忙。

1 个答案:

答案 0 :(得分:5)

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

getPreferenceManager().setSharedPreferencesName("preference_file_name");

以及稍后加载该特定首选项文件

getSharedPreferences("preference_file_name", Context.MODE_PRIVATE);