私のアプリケーションでは、ボタンをクリックすると警告ダイアログが表示されます。アラートダイアログは、複数選択項目と2つのボタン(OkとCancel)で構成されています。最初は配列を使用していくつかの項目を設定しました(つまり、コードではchoice_checked)。android - アラートダイアログのステータスのマルチチョイス項目を更新する方法
あなたはいくつかの変更をした警告ダイアログを開き、閉じ、再び警告ダイアログを開く]ダイアログ[OK]ボタンをクリックした場合、それは変更(警告ダイアログのすなわち、このデフォルトのプロパティ)を示しています。
警告ダイアログを開くと、いくつかの変更が加えられ、キャンセルボタンがクリックされた後、ダイアログが閉じられ、警告ダイアログが再度表示されます。この場合、以前のステータスのみを表示します(変更を表示しません) .iは試みましたが、私は体を助けてくれません。
コードでは、choice_checkedとchoice_checked_dynamicは論理配列です.choice_checked_dynamicはchoice_checkedの複製です。これらの2つの配列は最初は同じです。リストに変更を加えてOKボタンをクリックすると、変更された配列がchoice_checked_dynamicにコピーされます。デフォルトではアラートダイアログには変更内容しか表示されないので、OKボタンで問題ありません。しかし、キャンセルボタンの場合は、いくつかの変更を加えた後、キャンセルボタンをクリックして、choice_checked_dynamicステータス(前のステータスを表示したことを意味します)を表示したいということを意味します。
私は試しましたが、私はしていません。誰か助けてくれますか?
コード:上記のコードの問題で
private OnClickListener bookmark_btnListener = new OnClickListener()
{
public void onClick(View v)
{
try
{
showDialog(DIALOG_MULTI_CHOICE);
}
catch(Exception ex2)
{
System.out.println("back btn error:"+ex2.toString());
}
}
};
protected Dialog onCreateDialog(int id) {
switch (id) {
case DIALOG_MULTI_CHOICE:
bookmark_dialog = new AlertDialog.Builder(this);
bookmark_dialog.setTitle("Bookmarking for");
bookmark_dialog.setMultiChoiceItems(choice, choice_checked, new OnMultiChoiceClickListener() {
public void onClick(DialogInterface dialog, int index, boolean status)
{
}
});
bookmark_dialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton)
{
for(int i=0;i<choice_checked.length;i++)
{
choice_checked_dynamic[i] = choice_checked[i];
}
dialog.dismiss();
}
});
bookmark_dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton)
{
for(int i=0;i<choice_checked_dynamic.length;i++)
{
choice_checked[i] = choice_checked_dynamic[i];
}
dialog.dismiss();
}
});
return bookmark_dialog.create();
}
return null;
}