0
我有一個表,我試圖動態刪除行。每一行都有一個刪除按鈕,打開一個確認對話框。當確認結果爲肯定時,我想刪除此表格行。Android對話框:確認刪除錶行
我得到了這個工作,相當潦草,想知道是否有一個更簡單的方法來實現我的目標。爲了澄清代碼示例中的事情,我的表需要動態創建,因此我給刪除按鈕一個id id + 2000的id。我還銷燬並重新創建每個onPrepareDialog()中的對話框。有沒有更簡單的方法來做到這一點,特別是在每次打開對話框時都不要銷燬和重新創建對話框?非常感謝你!
從我的主Activity類的某些代碼:
private OnClickListener deleteRowListener = new OnClickListener() {
public void onClick(View v) {
Bundle args = new Bundle();
args.putInt(DELETE_ID_KEY, v.getId());
showDialog(DIALOG_DELETE,args);
}
};
@Override
protected void onPrepareDialog(int id, Dialog dialog, Bundle args) {
switch (id) {
case DIALOG_DELETE : {
removeDialog(id);
dialog = createDeleteDialog(args);
}
}
}
@Override
protected Dialog onCreateDialog(int id, Bundle args) {
switch (id) {
case DIALOG_DELETE : {
return createDeleteDialog(args);
}
}
return null;
}
private Dialog createDeleteDialog(Bundle args) {
final int toDeleteId = args.getInt(DELETE_ID_KEY) - 2000; //FSP!!
return new AlertDialog.Builder(this)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
TableRow row = rowsMap.get(toDeleteId);
myTable.removeView(row);
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.cancel();
}
})
.create();
}
謝謝!這工作,但我的印象是一個ListView不能嵌套在另一個視圖。我在此活動的ScrollView中有其他控件。 – hobgillin 2010-09-01 14:50:54