Search code examples
javaandroidserializationonsaveinstancestate

Android Studio: SavedInstanceState of object doesn't work


I have a self made object called "MemoryCard", which has implemented View.OnClickListener and Serializable and is extended to Activity.

I declared MemoryCard card; as a data field outside my onCreate() method and my onSaveInstanceState methode looks like this:

   @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putSerializable("CARD", card);
    }

And inside my OnCreate stands

    if (savedInstanceState == null) {
        card = new MemoryCard(this, 0, 1, R.drawable.testImage); // given parameters
    }
    else {
        card = (MemoryCard) savedInstanceState.getSerializable("CARD");
    }

But I always get exceptions that my App stops. Did I something wrong or MemoryCard mustn't have anything extended or implemented?


Solution

  • You should put before super method call

    @Override
        public void onSaveInstanceState(Bundle outState) {
            outState.putSerializable("CARD", card);
            super.onSaveInstanceState(outState);
    
        }