Android alertdialogue builder返回布尔值

时间:2013-09-01 09:12:12

标签: android

我之前已经提到了这个,但不知怎的,这已经冻结了。所以做一个重复的。

我正在打一个简单的脚本,其中有两个选项的确认框。我需要在活动中多次调用它。所以我做了一个方法来做到这一点。基于返回的布尔值我想写条件语句。

// Before oncreate

静态布尔确认;

 private void showConfirmation() {
        // UserFunctions userFunctions = null;
        // TODO Auto-generated methodastub

        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(ProfileActivity.this);

        // set title
        alertDialogBuilder.setTitle("test");
        // set dialog message
        alertDialogBuilder.setMessage("Please update the unfilled fields.").setCancelable(false)
                .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int id) {

                        dialog.cancel();
                        confirmation = false;

                    }
                }).setNegativeButton("Later on", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int id) {

                        confirmation = true;
                    }
                });

        // create alert dialog
        AlertDialog alertDialog = alertDialogBuilder.create();

        // show it
        alertDialog.show();

}    









public void myOnClicktest(View v) {

    showConfirmation();
    if (confirmation){ 

    Intent intent = new Intent(getApplicationContext(), NewActivity.class);
    startActivity(intent);
    }
}

1 个答案:

答案 0 :(得分:1)

这样做 -

 alertDialogBuilder.setMessage("Please update the unfilled fields.").setCancelable(false)
                .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int id) {

                        dialog.cancel();
                        confirmation = false;

                    }
                }).setNegativeButton("Later on", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int id) {
                        Intent intent = new Intent(getApplicationContext(),   NewActivity.class);
                        startActivity(intent);
                    }
                });

因为在您的情况下,您的代码不会等待确认值在对话框中更改它跳过对话框,默认情况下确认值为false。