我的代码中有一个函数,我想在其他activity中使用,但我不能使该函数静态化,因为每次添加静态时,它都会给我一个错误(错误指的是“this”):
不能从静态上下文引用“com.example.MemorablePlacecs.MainActivity.This”
这是我要使用的代码:
protected boolean saveArray() {
SharedPreferences sp = this.getSharedPreferences(SHARED_PREFS_NAME, Activity.MODE_PRIVATE);
SharedPreferences.Editor mEdit1 = sp.edit();
Set<String> set = new HashSet<String>();
set.addAll(mArrayList);
mEdit1.putStringSet("list", set);
return mEdit1.commit();
}
谢谢你的帮助
您可以将其设置为静态的,如下所示:
private final static String SHARED_PREFS_NAME = "your_name";
public static boolean saveArray(Context context, List<Needed_Class> list) {
SharedPreferences sp = context.getSharedPreferences(SHARED_PREFS_NAME, Context.MODE_PRIVATE);
SharedPreferences.Editor mEdit1 = sp.edit();
Set<String> set = new HashSet<String>();
set.addAll(list);
mEdit1.putStringSet("list", set);
return mEdit1.commit();
}
从activity打来电话:
PrefsHelper.saveArray(this, list)