Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GetSharedReferences活动到片段_Java_Android_Nullpointerexception - Fatal编程技术网

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();
}