我有一个方法deleteDilaog(它显示带有yes和no选项的对话框。当点击是它做某事时,当点击它没有取消对话框时)它被称为购买点击按钮或选择菜单中的项目。问题是,结果不一样?从菜单中选择它可以正常工作但单击按钮时它只显示对话框,无论我点击什么,没有任何反应?
按钮:
private void RemoveAll(){
Button button=(Button) findViewById(R.id.button2);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
deleteDialog();
}
});
}
菜单项:
@Override
public boolean onMenuItemSelected(int id, MenuItem item) {
mDeleteId=item.getItemId();
switch(item.getItemId()) {
case INSERT_ID:
addItem();
return true;
case DELETE_ALL_ID:
deleteDialog();
break;
}
return super.onMenuItemSelected(id, item);
}
deleteDialog方法:
private void deleteDialog() {
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.setMessage
(CONFIRM_DIALOG_STRING).setCancelable(false).setPositiveButton
(POSITIVE, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int
which) {
switch (mDeleteId) {
case DELETE_ALL_ID:
mDbHelper.removeAllLists();
fillData();
break;
case DELETE_ID:
Cursor c = (Cursor)
getListView().getAdapter().getItem(which);
mDbHelper.removeList
(mItemId);
c.requery();
break;
}
}
}).setNegativeButton(NEGATIVE, new OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int
which) {
dialog.cancel();
}
});
AlertDialog alertDialog = dialog.create();
alertDialog.show();
}
答案 0 :(得分:0)
首先不应该在编码时调用对话框。 让我们Activity.onCreateDialog来初始化和维护对话框生命周期
活动提供了一种管理对话框创建,保存和恢复的工具。另请参阅onCreateDialog(int),onPrepareDialog(int,Dialog),showDialog(int)和dismissDialog(int)。
答案 1 :(得分:0)
看起来问题出在mDeleteID上。它在OnMenuItemSelected中设置,但不在button2的onClick侦听器中设置。
我猜测单击按钮时开关(mDeleteID)会失效。
答案 2 :(得分:0)
如果是按钮,则表示您没有为mDeleteId设置值。