Android:等待用户关闭的对话框

时间:2014-05-15 18:22:57

标签: android dialog

private boolean popup(String title, String message, int resID) {
    final Dialog dialog = new Dialog(PRO.this);
    dialog.setContentView(resID == 0 ? R.layout.dialog : resID);
    dialog.setTitle(title);

    final Object[]  result = {false};
    Button butonOk = (Button)dialog.findViewById(R.id.dialog_ok);
    Button butonCancel = (Button)dialog.findViewById(R.id.dialog_cancel);
    TextView text = (TextView)dialog.findViewById(R.id.dialog_text);
    text.setText(message);
    butonOk.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            result[0] = true;
            dialog.dismiss();
        }
    });

    butonCancel.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            dialog.dismiss();
        }
    });

    dialog.setCancelable(false);
    dialog.show();

    if((Boolean)result[0]){
        PRO.log("OK");
    }else{
        PRO.log("FALSE");
    }
    return (Boolean)result[0];
}

当我运行我的应用程序时,我会正常显示我的对话框,但是在打开对话框时直接看到" FALSE" 所以我希望在用户输入时我显示消息。 那么也许dialog.show()然后阻止线程?

1 个答案:

答案 0 :(得分:1)

你必须将你的评论/动作放在OnClick方法中,如

butonOk.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {

      if((Boolean)result[0]){
          PRO.log("OK");
      }else{
          PRO.log("FALSE");
      }
      dialog.dismiss();
    }
});