我想使用 android 中的共享首选项保存数据。但我希望使用单独的类来完成这项任务。我已经实现了该类,如下所示,
import android.content.Context;
import android.content.SharedPreferences;
public class SavePref {
private Context context;
public SavePref(Context context){
this.context = context;
}
public void saveInt(String key, int value) {
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(key, value);
editor.commit();
}
}
但有一个错误getActivity()
,
The method getActivity() is undefined for the type SavePref
怎么解决这个问题呢?
Thanks
getActivity()
是一种方法Fragment
不属于你的SavePref
。在您的情况下,简单的解决方法是使用您保留为成员变量的上下文来检索SharedPreferences
。您的方法的另一种替代方法是避免将上下文保留为成员变量,以某种方式将共享首选项链接到您的实例SavePref
类,并且有一个静态方法
public static void saveInt(Context context, String key, int value) {
SharedPreferences sharedPref = context.getDefaultSharedPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(key, value);
editor.commit();
}
并解决如下方法:
SavePref.saveInt(getActivity(), key, value);
from a Fragment
or
SavePref.saveInt(this, key, value);
from an Activity
。这样你就不需要每次需要调用时都实例化 SavePrefsaveInt
,并且您可以避免存储对Context
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)