Скажем, я открыл диалог, и я поворачиваю свой телефон в сторону. Я хочу, чтобы этот диалог оставался открытым. Как это сделать?Как сохранить открытое состояние диалога onRestoreInstanceState
Вот что я пытался
Dialog dialog;
boolean dialogShown = false;
onClick:
dialog = new Dialog(Login.this, R.style.no_title_dialog);
dialog.show();
dialogShown = true;
dialogButton.onClick:
//doStuff
dialog.dismiss();
dialogShown = false;
, а затем
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
if(dialogShown) {
outState.putBoolean("dialogShown", true);
}
}
@Override
protected void onRestoreInstanceState(Bundle outState) {
super.onRestoreInstanceState(outState);
outState.getBoolean("dialogShown");
if(dialogShown){
dialog.show();
}
}
, но когда я включаю телефон в сторону, я получаю NullPointer исключение в ряду:
dialog.show();
в onRestoreInstanceState, как будто он больше не распознает диалог?
И я думал, что никто больше не использует 'Dialog' ... Просто используйте' DialogFragment' правильно, и все будет управляться для вас, т.е. оно останется открытым при изменении ориентации и т. Д. Обратитесь к http://developer.android.com/reference /android/app/DialogFragment.html и http://android-developers.blogspot.com/2012/05/using-dialogfragments.html –
Используйте Activity.showDialog() или DialogFragment – hjy