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