Johan
Johan

Reputation: 35194

fetching savedInstanceState values, nullpointerexception

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main2);
    savedInstanceState.putString("foo", "bar");
}

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
  super.onRestoreInstanceState(savedInstanceState);

  String myString = savedInstanceState.getString("foo");

  Log.i("debug", "saved data: " + myString);
}

Im trying to preserve some values in an activity, but i recieve the following error: 06-23 23:09:44.038: E/AndroidRuntime(17584): java.lang.RuntimeException: Unable to start activity ComponentInfo{se.johanberntsson.activitytest/se.johanberntsson.activitytest.TestActivity}: java.lang.NullPointerException

What did I miss here? Thanks

Upvotes: 0

Views: 3419

Answers (1)

ρяσѕρєя K
ρяσѕρєя K

Reputation: 132972

Override onSaveInstanceState for saving values in savedInstanceState Bundle as:

public String strfoo="";
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main2);
            //comment this line you only fatch values from savedInstanceState
            String myString = savedInstanceState.getString("foo");
            Log.i("debug", "saved data: " + myString);
            // savedInstanceState.putString("foo", "bar");
            strfoo="bar"; set value here
        }

        @Override
        public void onRestoreInstanceState(Bundle savedInstanceState) {
          super.onRestoreInstanceState(savedInstanceState);
          String myString = savedInstanceState.getString("foo");
          Log.i("debug", "saved data: " + myString);
        }

      @Override

      public void onSaveInstanceState(Bundle savedInstanceState) {
         savedInstanceState.putString("foo", strfoo);
         super.onSaveInstanceState(savedInstanceState);

       } 

Upvotes: 3

Related Questions