オリエンテーションの変更で、アクティビティが再作成され、[日時の設定]ダイアログボックスも再作成されます。 ユーザーが変更した日付時刻ダイアログの状態を保存します。datetimeの状態を保持する方法オリエンテーション変更のダイアログ?
私がダイアログを閉じる前に私は、Date Time Dialogの状態を保持したいと思います。
注意:ダイアログをonSaveInstanceStateで閉じることができます。ここではバンドルを使用できます。しかし、アクティビティが一時停止状態になったときにも呼び出されます。この場合、ダイアログを閉じることを嫌います。したがって、それをonDestroyメソッドで却下することに決めましたが、そこにバンドルオブジェクトはありません。これが私がこの問題に直面している理由です。 onDestroyでバンドルにアクセスする方法はありますか?または私の問題に対する他の提案があれば幸いです。
@Override
protected void onDestroy() {
if(dateTimeDialog !=null && dateTimeDialog.isShowing())
{
//<HERE I WANT THE STATE TO BE SAVED IN THE BUNDLE>
dateTimeDialog.dismiss();
}
super.onDestroy();
}
ユーザーがアプリケーションから離れると、アプリケーションをロックし、画面のロックを解除すると、表示されているダイアログが再開されます。また、onSavedInstanceStateでダイアログを閉じると、アプリケーションのロックを解除した後、onRestartが呼び出され、メソッドの起動と再開が行われます。これらのメソッドでは、Bundleのインスタンスがパラメータとして指定されていません。
さらに、ランドスケープ&のレイアウトは、マニフェストファイルでconfigChanges = "orientation"を設定できないため、個別に設定しています。
'DatePickerDialog'クラスには' onSaveInstanceState() 'と' onRestoreInstanceState() 'メソッドがあります。 –