Mar*_*era 6 java android dialog interface switch-statement
我们有两个AlertDialog对象
AlertDialog dialog1, dialog2;
Run Code Online (Sandbox Code Playgroud)
两个对话框都是通过创建的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;
}
}
Run Code Online (Sandbox Code Playgroud)
如何修改这个switch逻辑来处理多个对话框?
(或者,如果有更好的系统来处理对话框,除了内联按钮回调,它是什么?)
我建议你把自己需要的param放在自定义监听器中.
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
}
}
Run Code Online (Sandbox Code Playgroud)
然后,当您将onClickListeners添加到对话框时,您只需向侦听器提供一个id.