我正在尝试通过sharedpreferences在活动之间传递字符串集,但似乎默认的sharedpreferences为每个活动制作了两个文件。
我试图与具有相同名称的PRIVATE_MODE
共享,但没有成功
SharedPreferences appPrefernces = PreferenceManager.getDefaultSharedPreferences(ctx);
SharedPreferences.Editor appEditor = appPrefernces.edit();
Set<String> usersSet = appPrefernces.getStringSet("users", new HashSet<String>());
if(!usersSet.contains(id)) {
usersSet.add(id);
appEditor.putStringSet("users", usersSet);
appEditor.apply();
}
SharedPreferences appPrefernces = PreferenceManager.getDefaultSharedPreferences(Main.this);
users = appPrefernces.getStringSet("users",new HashSet<String>());
似乎它保存了信息,但是在提取信息时我得到了一部分信息
答案 0 :(得分:1)
通过这种方式,您可以确定正在使用的首选项文件:
private static void saveUsers(Context context, Set<String> usersSet) {
final SharedPreferences sharedPreferences = context.getSharedPreferences("preferences", Context.MODE_PRIVATE);
final SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putStringSet("users", userSet).apply();
}
private static Set<String> loadUsers(Context context){
final SharedPreferences sharedPreferences = context.getSharedPreferences("preferences", Context.MODE_PRIVATE);
return sharedPreferences.getStringSet("users", new HashSet<String>());
}
希望有帮助。