0
考虑以下AlertDialog:的Android AlertDialog onDismiss让用户选择
pizzaOrderDialog = new AlertDialog.Builder(mContext);
pizzaOrderDialog.setTitle("One last thing:");
pizzaOrderDialog.setMessage("Would you like black or green olives?")
.setCancelable(true)
.setPositiveButton("Black", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
orderPizza("black");
Toast.makeText(mContext, "Ok! Thanks!", Toast.LENGTH_LONG).show();
}
})
.setNegativeButton("Green", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
orderPizza("green");
Toast.makeText(mContext, "Ok! Thanks!", Toast.LENGTH_LONG).show();
}
});
alertD = pizzaOrderDialog.create();
这有可能是用户还选择通过任何位置触摸屏幕上,而不是点击“黑色”或“绿色”关闭对话框。我想要“捕捉”这种情况,并在onDismiss中获得这种情况的指示:
alertD.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialogInterface) {
//TODO tell if dialog result was dialogInterface.BUTTON_NEGATIVE
// or maybe dialogInterface.BUTTON_POSITIVE ?
}
});
这里的最佳实践是什么?谢谢!
为什么不使用'setOnCancelListener()'? – CommonsWare 2015-04-04 20:44:06
谢谢。基本的东西。我应该删除这个问题吗? – user1555863 2015-04-04 20:51:36
我不确定使用'setOnCancelListener()'是否会出现错误。在这里回答你自己的问题似乎很好。 – CommonsWare 2015-04-04 20:53:16