android studio-无法在新活动上保存共享性能

uplii1fm  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(343)

如问题所示,共享首选项无法保存在新活动上

Set<String> temp = getSharedPreferences("pref", MODE_PRIVATE).getStringSet("attempt", null);
temp.add("one item");
SharedPreferences editor = getSharedPreferences("pref", MODE_PRIVATE);
editor.edit().putStringSet("attempt", temp).commit();

这段代码在主活动上工作得非常好。但是,当我试图将此代码放在另一个活动上时,它不起作用。
编辑的首选项可以在此代码之后查看,即使在 destroy(); 新活动的方法。但是,仅使用之前在主活动中添加的项将其刷新为保存的引用。
我已经搜索了半个小时,但我只找到了关于“无法保存首选项”的问题,而不是“只能在新活动中保存首选项”的问题
我想知道我的代码中是否有任何错误,如有任何帮助,将不胜感激。

9bfwbjaz

9bfwbjaz1#

为了使您的会议在全球范围内可用,我建议 SharedPrefs.java 类来保存您的 SharedPreferences 这样地:

public class SharedPrefs {

public static SharedPreferences prefs(Context context){
    return PreferenceManager.getDefaultSharedPreferences(context);
}

//Set your preference
public static void setMyPreference(Context context, String text) {
    prefs(context).edit().putString("MyPreference", text).apply();
}

//Get your preference
public static String getMyPreference(Context context) {
    return prefs(context).getString("MyPreference", "DefaultText");
}

使用下面的代码,您可以从 Activity 作为一个 SharedPreference 给你 SharedPrefs.java 类别:

//To save preferences in SharedPrefs
                String myString = "Hello world";
                SharedPrefs.setMyPreference(getContext(),myString);

或者是从你那里得到的 SharedPrefs.java 给你 Activity :

//To get preferences from SharedPrefs
                String getMyPreference = SharedPrefs.getCustomString(getContext());
                System.out.println(getCustomString);
                //Result = Hello world

相关问题