在我的應用程序中,如果單擊按鈕,我會顯示警報對話框。警報對話框由多個選項和2個按鈕組成(即Ok和Cancel)。最初,我使用數組設置了一些項目(即,在代碼choice_checked中)。android - 如何更新警報對話框的多選項目狀態
如果你打開你做了一些改變,然後點擊確定按鈕,然後對話框駁回並再次打開警告對話框警告對話框就說明更改(即,這個默認的警告對話框的屬性)。
如果你打開警報對話框,你做了一些改變,點擊取消按鈕,然後再次打開警報對話框,在這種情況下,我只想顯示以前的狀態(不顯示更改) 。我試過但我沒有得到請任何機構可以幫助我。
在代碼中,choice_checked和choice_checked_dynamic是布爾型arrays.choice_checked_dynamic是choice_checked的副本。意思最初這兩個陣列是相同的。如果您在列表中進行了一些更改並單擊確定按鈕,則更改後的數組將被複制到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;
}