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

Dee*_*pak 4 android preferences preferenceactivity sharedpreferences preferencefragment

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

设置集:

Settings 1
Settings 2
Settings 3
Run Code Online (Sandbox Code Playgroud)

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

Settings 1 :true
Settings 2 :false
Settings 3 :false
Run Code Online (Sandbox Code Playgroud)

对于Client2:

Settings 1 :false
Settings 2 :false
Settings 3 :false
Run Code Online (Sandbox Code Playgroud)

现在在Android应用程序中,当用户选择client1时,应显示client1特定集.

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

我的专长: 我是android编程的初学者.

到目前为止我的进展: 根据我对场景的理解,我需要使客户端明智的不同-2共享首选项文件.我为这组设置创建了一个通用首选项片段.由于所有客户端的设置都相同,因此我重复使用首选项片段.我还尝试为每个客户端动态指定首选项文件:

       SharedPreferences sharedPreference = context.getSharedPreferences(
                "<Here I dynamically specify prefs file name>", Context.MODE_PRIVATE);
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

请帮忙.

Dee*_*pak 5

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

getPreferenceManager().setSharedPreferencesName("preference_file_name");
Run Code Online (Sandbox Code Playgroud)

然后加载该特定的首选项文件

getSharedPreferences("preference_file_name", Context.MODE_PRIVATE);
Run Code Online (Sandbox Code Playgroud)