我创建了一个通用的OkCancelDialog类,可以通过静态方法在我的应用程序中方便地调用:
static public void Prompt(String title, String message) {
OkCancelDialog okcancelDialog = new OkCancelDialog();
okcancelDialog.showAlert(title, message);
}
由于各种原因,我需要活动中的onClick监听器,所以在我的活动中:
public void onClick(DialogInterface v, int buttonId) {
if (buttonId == DialogInterface.BUTTON_POSITIVE) { // OK button
// do the OK thing
}
else if (buttonId == DialogInterface.BUTTON_NEGATIVE) { // CANCEL button
// do the Cancel thing
}
else {
// should never happen
}
}
这适用于应用程序中的单个对话框,但现在我想添加另一个OK / Cancel对话框,由同一个活动处理。据我所知,只有一个onClick()
可以为活动定义,所以我不知道如何实现这个。
有任何建议或提示吗?
答案 0 :(得分:5)
尝试这样的事情......
public class MyActivity extends Activity
implements DialogInterface.OnClickListener {
// Declare dialogs as Activity members
AlertDialog dialogX = null;
AlertDialog dialogY = null;
...
@Override
public void onClick(DialogInterface dialog, int which) {
if (dialogX != null) {
if (dialogX.equals(dialog)) {
// Process result for dialogX
}
}
if (dialogY != null) {
if (dialogY.equals(dialog)) {
// Process result for dialogY
}
}
}
}
编辑这是我创建AlertDialogs
...
private void createGuideViewChooserDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Select Guide View")
.setSingleChoiceItems(guideViewChooserDialogItems, currentGuideView, this)
.setPositiveButton("OK", this)
.setNegativeButton("Cancel", this);
guideViewChooserDialog = builder.create();
guideViewChooserDialog.show();
}
答案 1 :(得分:1)
你有两个选择。 1)您可以在对话框本身上设置OnClickListener。 2)您可以根据传入的DialogInterface判断哪个对话框是哪个。