-1

I'm trying to save data on Activity and read on the Fragment.

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

Load data on fragment

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

But getSharedPreferences turn red on the fragment and it's suggested to create SharedPreferences method. So I did and there is no error left.

private SharedPreferences getSharedPreferences(String sharedPrefs, int modePrivate) {
        return null;
    }

I get error when I run the app.

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)

UPDATE

I removed this line

/*private SharedPreferences getSharedPreferences(String sharedPrefs, int modePrivate) {
        return null;
    }*/

and I use your code

public void loadData() {
        getActivity().getSharedPreferences(SHARED_PREFS, MODE_PRIVATE);    
        String beimtext = sharedPreferences.getString(kekoyaz);
        Toast.makeText(getActivity(), "bu"+beimtext, Toast.LENGTH_SHORT).show();
    }

I add

private ResourceBundle sharedPreferences;

But I got an error again.

Dorbagna
  • 305
  • 1
  • 4
  • 14

2 Answers2

0

This is because getSharedPreferences need a Context.

So, you can use the following:

getActivity().getSharedPreferences(SHARED_PREFS, MODE_PRIVATE);
ישו אוהב אותך
  • 26,433
  • 11
  • 70
  • 92
0

After you update your question, you getSharedPreferences() with Activity but did't assign sharedPreferences variable value

enter image description here


Replace your code with below.

public void loadData() {
        sharedPreferences = getActivity().getSharedPreferences(SHARED_PREFS, MODE_PRIVATE);    
        String beimtext = sharedPreferences.getString(kekoyaz);
        Toast.makeText(getActivity(), "bu"+beimtext, Toast.LENGTH_SHORT).show();
}
Jeffery Ma
  • 2,551
  • 20
  • 25
  • Answer is correct.Thank you.Just mini edit. String beimtext = sharedPreferences.getString(kekoyaz,""); – Dorbagna Jun 12 '19 at 13:42