Ho una vista personalizzata che estende LinearLayout. Ho implementato onSaveInstanceState() e onRestoreInstanceState() per salvare lo stato attuale della vista. Tuttavia nessuna azione è presa. Quando inserisco un registro all'interno di questi due metodi, anche in Log Cat non viene visualizzato nulla. Suppongo che quei due metodi non vengano nemmeno chiamati. Qualcuno può spiegare dov'è il problema? Grazie.onSaveInstanceState() e onRestoreInstanceState (stato Parcelable) non vengono chiamati?
@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);
}
ho avuto lo stesso problema, ma era perché la mia abitudine 'View' non ha avuto un set di' id'. Dai documenti _ "Nota che anche se il blocco è abilitato, alla vista deve ancora essere assegnato un ID (tramite setId (int)) per il suo stato da salvare." _ –