我有这样的CustomDialog.java:
public class CustomDialog {
Dialog dl;
public void ShowDialog(Context context, String message) {
dl = new Dialog(context);
dl.setContentView(R.layout.custom_dialog);
TextView tv_message = (TextView) dl.findViewById(R.id.textViewMessage);
tv_message.setText(message);
Button bt_yes = (Button)dl.findViewById(R.id.buttonYes);
Button bt_no = (Button)dl.findViewById(R.id.buttonNo);
bt_yes.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CheckYes();
}
});
bt_no.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dl.dismiss();
}
});
dl.show();
}
public Boolean CheckYesNo(Boolean check){
return check;
}
public Boolean CheckYes() {
return true;
}
public void CloseDialog() {
dl.dismiss();
}
}
这是Activity中使用CustomDialog的代码:
CustomDialog cdl = new CustomDialog ();
cdl.ShowDialog(Activity1.this, "test");
if (cdl.CheckYesNo(true)) {
// doing something with data and go to Activity 2
}
else {
cdl.CloseDialog();
}
我想要这样:
1.在Activity1中,当单击ImageButton时,将显示CustomDialog。
2.在CustomDialog显示后,如果单击Button yes,它将对数据进行处理,然后转到Activity2。
3.如果单击“否”按钮,则CustomDialog将关闭并且不对数据进行任何处理。
但我的问题是:
当单击ImageButton,CustomDialog显示时,我要处理的代码将执行并自动转到Activity2。
我无法选择是或否来单击。
我认为Button中的问题是onClick事件。
如何解决?
最佳答案
Dialog dialog;
dialog = new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.custom_dialog);
dialog.show();
TextView tv_message = (TextView) dialog .findViewById(R.id.textViewMessage);
tv_message.setText(message);
Button bt_yes = (Button)dialog.findViewById(R.id.buttonYes);
Button bt_no = (Button)dialog.findViewById(R.id.buttonNo);
bt_yes.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CheckYes();
}
});
bt_no.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});