所以我試圖讓AlertDialog確認點擊'從數據庫中刪除'按鈕。一直在嘗試相當長的時間,無法獲得工作模式。我目前的代碼如下。在Android中使用AlertDialog確認刪除
在類的頂部上的布爾
private static boolean dialogResult;
的方法來顯示的對話框
private void showErrorDialog(String title, String message){
AlertDialog.Builder builder = new AlertDialog.Builder(this)
.setTitle(title)
.setMessage(message)
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Activity.setDialogResult(true);
dialog.dismiss();
}
})
.setNegativeButton(R.string.cancel,new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Activity.setDialogResult(false);
dialog.dismiss();
}
});
AlertDialog alert = builder.create();
alert.show();
}
其中setDialogResult(布爾)只設置上述的類變量。當 '刪除' 按鈕,按下此代碼
執行:
setDialogResult(false);
//Find which list is to be deleted
RadioButton selectedBtn=(RadioButton)findViewById(group.getCheckedRadioButtonId());
String currentSelectedListName=selectedBtn.getText().toString();
if(!currentSelectedListName.equals("All")){//check if the list is the default
showErrorDialog("","Delete: "+currentSelectedListName+" ?");
if(dialogResult){
mDbHelper.deleteFGList(currentSelectedListName);
this.populateRadioGroupFromDb();
}
} else{//if it is the default (That is, the name of the list is "All") tell user of error
showErrorDialog("Delete Error","The default list cannot be deleted");
}
//}
感謝幫助!
編輯:抱歉,忘記提及我遇到的錯誤。當您在提示對話框中點擊確定時,它不會從數據庫中刪除該項目。不知怎的,它跳過布爾檢查。你可以看到我在該代碼片段的開始處將boolean的值設置爲false。如果它被刪除,則按下對話框中的'刪除'按鈕,確定按鈕,然後沒有任何反應。如果再次按下'刪除'按鈕,則這個新選擇將被自動刪除,而不進行對話檢查。基本上,那些onClick方法搞砸了,我希望有更好的方法來做到這一點。我讀過關於使用接口的一些東西?
所以人們似乎已表明這種方法
if(!currentSelectedListName.equals("All")){//check if the list is the default
AlertDialog.Builder builder = new AlertDialog.Builder(this)
.setTitle("")
.setMessage("Delete: "+currentSelectedListName+" ?")
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mDbHelper.deleteFGList(currentSelectedListName);
Activity.populateRadioGroupFromDb();
}
})
.setNegativeButton(R.string.cancel,null);
AlertDialog alert = builder.create();
alert.show();
} else{//if it is the default (That is, the name of the list is "All") tell user of error
showErrorDialog("Delete Error","The default list cannot be deleted");
}
問題是,日食給出
mDbHelper.deleteFGList(currentSelectedListName);
Activity.populateRadioGroupFromDb();
1.Cannot指非最終變量currentSelectedListName一個內部類中的編譯錯誤在不同的 方法中定義 2.無法對類型爲MyFGCardsActivity的非靜態方法populateRadioGroupFromDb()進行靜態引用
這是主張的方法還是我誤解?
什麼是錯誤? –
你面臨什麼問題?顯示的對話框是? – Chandrashekhar