onSaveInstanceState вызывается, но saveInstanceState в методе onCreate выбрасывает ноль - PullRequest
1 голос
/ 30 мая 2019

помещает некоторые сериализуемые значения в сохраненное состояние экземпляра, но сохраненное значение экземпляра равно нулю. onSaveInstanceState () вызывается с сообщением журнала, код выполняется корректно, но в методе onCreate нулевой указатель отлавливается после восстановления данных, а сохраненное состояние равно нулю. классы правильные. (сериализуемый) установлен. я не могу найти ошибку Спасибо за помощь.

@override
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.mb_activity);
            mBList = new ArrayList<MBClass>();
            mKList = new ArrayList<MKClass>();
            nAList = new ArrayList<AClass>();
            aList = new ArrayList<AClass>();
            try {
                mBList = (ArrayList<MBClass>) savedInstanceState.getSerializable("MBList");
                mKList = (ArrayList<MKClass>) savedInstanceState.getSerializable("MKList");
                aList = (ArrayList<AClass>) savedInstanceState.getSerializable("AList");
                nAList = (ArrayList<AClass>) savedInstanceState.getSerializable("NAList");

                Log.i("MB", "State geschrieben");

            } catch (NullPointerException ne) {
                //ne.printStackTrace();
                Log.i("MB", "State Null");
            }
    }
    @override    
    public void onSaveInstanceState(Bundle savedInstanceState) {
                savedInstanceState.putSerializable("MKList", (Serializable) mKList);
                savedInstanceState.putSerializable("MBList", (Serializable) mBList);
                savedInstanceState.putSerializable("NAList", (Serializable) nAList);
                savedInstanceState.putSerializable("AList", (Serializable) aList);
                super.onSaveInstanceState(savedInstanceState);
                Log.i("MB", "onSaveInstanceState");
            }

1 Ответ

0 голосов
/ 30 мая 2019

Замена Serializable на Parcelable у меня сработала.

@Parcelize // this annotation is needed in Kotlin. Not Sure about Java
class DataClass implements Parcelable {
   //Data members
}
...