Tôi có chế độ xem tùy chỉnh mở rộng LinearLayout. Tôi đã thực hiện onSaveInstanceState() và onRestoreInstanceState() để lưu trạng thái xem hiện tại. Tuy nhiên không có hành động nào được thực hiện. Khi tôi đặt một bản ghi bên trong hai phương thức đó thì cũng không có gì xuất hiện trong Log Cat. Tôi cho rằng hai phương pháp đó thậm chí không được gọi. Ai có thể giải thích đâu là vấn đề? Cảm ơn.onSaveInstanceState() và onRestoreInstanceState (trạng thái Parcelable) không được gọi?
@Override
public Parcelable onSaveInstanceState() {
Bundle bundle = new Bundle();
bundle.putParcelable("instanceState", super.onSaveInstanceState());
bundle.putInt("currentPage", currentPage);
return bundle;
}
@Override
public void onRestoreInstanceState(Parcelable state) {
if (state instanceof Bundle) {
Bundle bundle = (Bundle) state;
currentPage = bundle.getInt("currentPage");
Log.d("State", currentPage + "");
super.onRestoreInstanceState(bundle.getParcelable("instanceState"));
return;
}
super.onRestoreInstanceState(state);
}
tôi đã có vấn đề chính xác như nhau, nhưng đó là vì tùy chỉnh của tôi 'View' không có một' bộ id'. Từ các tài liệu _ "Lưu ý rằng ngay cả khi đóng băng được bật, chế độ xem vẫn phải có id được gán cho nó (thông qua setId (int)) cho trạng thái được lưu." _ –