Java GetSharedReferences活动到片段
我试图保存活动的数据并读取片段Java GetSharedReferences活动到片段,java,android,nullpointerexception,Java,Android,Nullpointerexception,我试图保存活动的数据并读取片段 public void saveData() { SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREFS, MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString(kekoyaz,mykey );
public void saveData() {
SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREFS, MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(kekoyaz,mykey );
editor.apply();
Toast.makeText(this, "Data saved", Toast.LENGTH_SHORT).show();
}
在片段上加载数据
public void loadData() {
SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREFS, MODE_PRIVATE);
//SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
String beimtext = sharedPreferences.getString(kekoyaz, "");
Toast.makeText(getActivity(), "bu"+beimtext, Toast.LENGTH_SHORT).show();
}
但是getSharedReferences在片段上变为红色,建议创建SharedReferences方法。所以我做到了,没有留下任何错误
private SharedPreferences getSharedPreferences(String sharedPrefs, int modePrivate) {
return null;
}
我运行应用程序时出错
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.prestige.user, PID: 32516
java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.String android.content.SharedPreferences.getString(java.lang.String, java.lang.String)' on a null object reference
at com.prestige.user.BlankFragment.loadData(BlankFragment.java:1918)
at com.prestige.user.BlankFragment.onCreateView(BlankFragment.java:1898)
更新
我删除了这条线
/*private SharedPreferences getSharedPreferences(String sharedPrefs, int modePrivate) {
return null;
}*/
我用你的密码
public void loadData() {
getActivity().getSharedPreferences(SHARED_PREFS, MODE_PRIVATE);
String beimtext = sharedPreferences.getString(kekoyaz);
Toast.makeText(getActivity(), "bu"+beimtext, Toast.LENGTH_SHORT).show();
}
我补充说
但我又犯了一个错误。这是因为我需要一个上下文
因此,您可以使用以下选项:
getActivity().getSharedPreferences(SHARED_PREFS, MODE_PRIVATE);
更新问题后,您可以使用
活动获取共享引用()
,但没有分配共享引用
变量值
将代码替换为以下内容
public void loadData() {
sharedPreferences = getActivity().getSharedPreferences(SHARED_PREFS, MODE_PRIVATE);
String beimtext = sharedPreferences.getString(kekoyaz);
Toast.makeText(getActivity(), "bu"+beimtext, Toast.LENGTH_SHORT).show();
}
getActivity().getSharedReferences(共享优先,模式私有);试一试,当你有一个返回null的方法时,你期望得到什么?当我添加“SharedReferences SharedReferences=this.getActivity().GetSharedReferences(“SharedReferences”,Context.MODE_PRIVATE)”;“我没有错误,但我的值没有显示。只有文本显示为字符串文本“bu”。答案是正确的。谢谢。只需进行小编辑。字符串beimtext=SharedReferences.getString(kekoyaz,“”);
public void loadData() {
sharedPreferences = getActivity().getSharedPreferences(SHARED_PREFS, MODE_PRIVATE);
String beimtext = sharedPreferences.getString(kekoyaz);
Toast.makeText(getActivity(), "bu"+beimtext, Toast.LENGTH_SHORT).show();
}