Мне известно о сохранении и восстановлении состояния активности. Но я хочу сохранить и восстановить состояние представления. У меня есть пользовательский вид и два переопределенных метода:
@Override
protected void onRestoreInstanceState(Parcelable state) {
if (state instanceof Bundle) {
Bundle bundle = (Bundle) state;
currentLeftX = bundle.getInt(CURRENT_LEFT_X_PARAM, 0);
currentTopY = bundle.getInt(CURRENT_TOP_Y_PARAM, 0);
}
super.onRestoreInstanceState(state);
}
@Override
protected Parcelable onSaveInstanceState() {
super.onSaveInstanceState();
Bundle bundle = new Bundle();
bundle.putInt(CURRENT_LEFT_X_PARAM, currentLeftX);
bundle.putInt(CURRENT_TOP_Y_PARAM, currentTopY);
return bundle;
}
Я ожидал, что это будет работать бесшовно, но встречается и ошибка:
Вызвано: java.lang.IllegalArgumentException: Неверный класс состояния, ожидающий View Состояние, но получил класс android.os.Bundle вместо этого. Эта обычно происходит, когда два вида разные типы имеют одинаковый идентификатор в той же иерархии. Этот идентификатор вида ID/mapViewId. Убедитесь, что другие представления не использовать один и тот же идентификатор. на android.view.View.onRestoreInstanceState(View.java:6161)
Но это мнение является единственным в моей деятельности. Итак, я спрашиваю:
Каков правильный способ сохранения состояния представления?