我们有两个 AlertDialog
对象
AlertDialog dialog1, dialog2;
这两个对话框都是通过 AlertDialog.Builder
创建的。
我们如何识别哪个对话框是 DialogInterface.OnClickListener
中的事件源?
通过单个对话框我们可以做到这一点:
AlertDialogInstance.setOnClickListener(myListener);
//myListener
public void onClick(DialogInterface arg0, int arg1) {
switch (arg1) {
case AlertDialog.BUTTON_NEGATIVE:
// do something
break;
case AlertDialog.BUTTON_POSITIVE:
// do something
break;
case AlertDialog.BUTTON_NEUTRAL:
// do something
break;
}
}
如何修改这个switch
逻辑来处理多个对话框?
(或者如果有更好的系统来处理对话框,而不是内联按钮回调,那是什么?)
最佳答案
我建议您将需要的参数放入自定义监听器中。
private class CustomOnClickListener implements OnClickListener {
private int id;
public CustomOnClickListener(int id) {
this.id = id;
}
public void onClick(DialogInterface dialog, int which) {
//check id and which
}
}
然后,当您将 onClickListeners 添加到对话框时,您只需向监听器提供一个 ID。
关于java - 用 DialogInterface.OnClickListener 区分单个 Dialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7636151/