現在、私のコードはデバイスを回転させるときに解除する必要があるダイアログを作成します。このように、特定のダイアログのiはグローバル宣言した後、コードを持って次のようにonDestroyでonDestroy内から複数選択ダイアログを解除する方法
のダイアログが表示されている場合、私は、確認することができ、その場合はそれを破壊:
if ((alertDialog !=null) && (alertDialog.isShowing()))
{
alertDialog.dismiss();
}
上記の操作は、基本的なテキストとボタンベースのダイアログでは問題ありませんが、チェックボックスやラジオボタンなどの複数の選択項目を扱うダイアログもあります。
もののような現在の設定です:複数選択ダイアログで
AlertDialog.Builder dialogMultipleChoice = new AlertDialog.Builder(this);
dialogMultipleChoice.setMultiChoiceItems(myList, myCheckedList, new DialogInterface.OnMultiChoiceClickListener(){
@Override
public void onClick(DialogInterface dialog,int which, boolean isChecked) {
checkedList[which] = isChecked;
}}
);
...というように。..
、私はonDestroyでこれを却下することができますどのように見ることができない、つまり、私が持っていますdialogMultipleChoice.dismiss()を呼び出す能力がありません。
私はdialog.createを使用することはできません。私は、setMultiChoiceItemsを呼び出すことはできません。
これを解決するための助けがあれば幸いです。
あなたはビルダーを作成し、あなたのメンバ変数にbuilder.create();
の値を代入しているあなたの最初の例では
こんにちはKatharina、残念ながらそれは動作しません。なぜなら、私がdialog.createを使用すると、マルチチートアイテムを割り当てることができないからです。その方法ではサポートされていないので、これはうまくいきません。 – greysqrl
ビルダーに項目を割り当てた後に 'dialog.create()'を呼び出す – Katharina