警报对话框负面按钮到同一活动

时间:2015-05-06 03:06:18

标签: android alertdialog android-alertdialog

我正在尝试一个简单的应用,用户输入他的号码。我会显示一个警告对话框以确认他的手机号码。如果用户选择"是"我正在将他重定向到下一个活动。但问题是,如果用户选择"否"我想显示编辑号码的相同活动。

现在我通过调用相同活动的Intent来做到这一点。但这是一种不好的做法。如何在活动中显示与上次输入的号码相同的活动?

这是我尝试的方式。 按下按钮

phoneNum = (EditText) findViewById(R.id.editTextPhoneNumber);
String phNum = phoneNum.getText().toString();
AlertDialog.Builder alertDialog = new AlertDialog.Builder(
        MainActivity.this);
alertDialog.setTitle("CONFIRM");
alertDialog.setMessage("Is this your correct number? \n" + phNum
        + " a SMS will be sent to verify your phone number.");
alertDialog.setPositiveButton("YES",
        new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                sendOtp();
                Intent myIntent = new Intent(getApplicationContext(),
                        Activity2Activity.class);
                startActivity(myIntent);
            }
        });
alertDialog.setNegativeButton("NO",
        new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                // dialogInterface.cancel();
                Intent sameIntent = new Intent(MainActivity.this,
                        MainActivity.class);
                startActivity(sameIntent);
                finish();
            }
        });
alertDialog.show();

6 个答案:

答案 0 :(得分:3)

您可以阅读此参考文档: Official Doc : Dialog Dismiss

注意这句话: 当用户触摸使用AlertDialog.Builder创建的任何操作按钮时,系统会为您解除对话框。
无论用户单击由Builder生成的按钮,系统都会关闭对话框。

alertDialog.setNegativeButton("NO", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
        //Just leave it empty here.
    }
});

答案 1 :(得分:2)

由于您只需要显示相同的活动,只需在单击否定按钮时关闭该对话框。

alertDialog.setNegativeButton("NO", new DialogInterface.OnClickListener() {
    @Override 
    public void onClick(DialogInterface dialogInterface, int i) {
        alertDialog.dismiss();   
    }
}

答案 2 :(得分:1)

使用此:

getDialog().dismiss();

答案 3 :(得分:1)

尝试使用此功能。它会帮助你

phoneNum = (EditText) findViewById(R.id.editText1);
    String phNum = phoneNum.getText().toString();
    final AlertDialog.Builder alertDialog = new AlertDialog.Builder(
            MainActivity.this);
    alertDialog.setTitle("CONFIRM");
    alertDialog.setMessage("Is this your correct number? \n" + phNum
            + " a SMS will be sent to verify your phone number.");
    alertDialog.setPositiveButton("YES",
            new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i)        {
                     sendOtp();
                     Intent myIntent = new Intent(getApplicationContext(),
                     Activity2Activity.class);
                     startActivity(myIntent);
                }
            });
    alertDialog.setNegativeButton("NO",
            new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    // dialogInterface.cancel();

                }
            });
    alertDialog.show();

答案 4 :(得分:0)

如果您不希望发生任何事情,则不必使用OnClickListener,只需输入null

例如:

builder.setPositiveButton("OK",null);

答案 5 :(得分:0)

public void SureEvent() {
    final AlertDialog.Builder ad = new AlertDialog.Builder(this);
    ad.setMessage("Are You sure Want to exit ?");

    ad.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            Toast.makeText(MainActivity.this, "Closing..", Toast.LENGTH_SHORT).show();
            finish();
        }
    })
            .setNegativeButton("No", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();//Syntax:DialogInterface_varible.method()
                    //dialog.cancel();
                }
            })
            .show();
}