繁体   English   中英

AlertDialog里面的alertdialog android

[英]AlertDialog inside alertdialog android

我正在尝试在 alertdialog 中添加一个 alertdialog。但无法看到第二个 alertdialog ..请帮助我这里显示的是我的代码

AlertDialog alertDialog = new AlertDialog.Builder(myclass.this).create();
alertDialog.setTitle("First alert");
alertDialog.setMessage("first alert press");
alertDialog.setButton("ok", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {
        // here you can add functions
        dialog.cancel();

        AlertDialog alertDialog1 = new AlertDialog.Builder(myclass.this).create();
        alertDialog1.setTitle("second alert dialog");
        alertDialog1.setMessage("second alert dialog details");
        alertDialog1.setButton("Scan Another", new DialogInterface.OnClickListener() {
                           public void onClick(DialogInterface dialog, int which) {
}}); }

这将是一个迟到的答案,但您可以像这样在 onClickListener 中创建一个 AlertDialog:

public void onClick(DialogInterface dialog, int which) {
    if (options[which] == "Manage") {
      //Do smtg
    } else {
        dialog.dismiss();
        final AlertDialog alert;

        AlertDialog.Builder dialog2 = new AlertDialog.Builder(CategoryPage.this);
        alert = dialog2.create();
        alert.setTitle("Delete " + title + "?");
        alert.setMessage("Are you sure you want to delete this category?");

        alert.setButton("Yes", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                Toast.makeText(CategoryPage.this, "YESS", Toast.LENGTH_LONG).show();
            }
        });

        alert.setButton2("No", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                alert.dismiss();
            }
        });

        alert.show();
    }
}

我发现方法可能对某人有帮助,所以这就是我分享的原因:

//2nd Alert Dialog
                AlertDialog.Builder alertDialogBuilderSuccess = new AlertDialog.Builder(
                        context);
                alertDialogBuilderSuccess.setTitle("TopUp Success");
                // set dialog message
                alertDialogBuilderSuccess
                        .setMessage(
                                "You voucher is printed, please go to the cashier.")
                        .setCancelable(false)
                        .setIcon(R.drawable.ic_launcher2)
                        .setPositiveButton("Confirm",
                                new DialogInterface.OnClickListener() {
                                    public void onClick(
                                            DialogInterface dialog, int id) {

                                        finish();
                                    }
                                });

                // create alert dialog
                final AlertDialog alertDialogSuccess = alertDialogBuilderSuccess.create();








                //////////////////////////////////
                //1st Alert
                AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
                        context);
                alertDialogBuilder.setTitle("TopUp Request");
                // set dialog message
                alertDialogBuilder
                        .setMessage(
                                "Please confirm: " + vendor_name + ", "
                                        + tvLoadAmount.getText())
                        .setCancelable(false)
                        .setIcon(R.drawable.ic_launcher2)
                        .setPositiveButton("Confirm",
                                new DialogInterface.OnClickListener() {
                                    public void onClick(
                                            DialogInterface dialog, int id) {

                                        //calling the second alert when it user press the confirm button
                                        alertDialogSuccess.show();
                                    }
                                })
                        .setNegativeButton("Cancel",
                                new DialogInterface.OnClickListener() {
                                    public void onClick(
                                            DialogInterface dialog, int id) {
                                        dialog.cancel();
                                    }
                                });

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

                // show it
                alertDialog.show();

AlertDialogs 不应该让另一个 AlertDialog 打开。 如果它确实是您想要的,那么将您的主要 AlertDialog 更改为 Dialog。 通过这种方式,您可以手动添加管理辅助 AlertDialog 所需的按钮和功能

import android.widget.TextView;
import android.widget.Button;
import android.view.View;
import android.content.DialogInterface;

public class MainActivity extends AppCompatActivity {
    Button click;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        click=(Button)findViewById(R.id.btnId);

        click.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                txtSubmit();
            }
        });
    }


protected void txtSubmit(){
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("This is alert title");
        builder.setMessage("This is message for Alert dialog");
        builder.setPositiveButton("Yup", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                AlertDialog.Builder builder1 = new AlertDialog.Builder(MainActivity.this);
                builder1.setTitle("This is alert title inside");
                builder1.setMessage("This is message for Alert dialog inside");
                builder1.show();
            }
        });
        builder.show();
    }
}

从 onClick 事件侦听器调用的txtSubmit函数。 同样对于需要打开的第二个警报对话框,我必须通过

AlertDialog.Builder builder1 = new AlertDialog.Builder(MainActivity.this);

在这里,我们必须使用className绑定 this 事件

当我们点击第一个对话框中的 yup 按钮时,它会显示第一个对话框中的第二个对话框

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM