开发者

AlertDialog inside alertdialog android

开发者 https://www.devze.com 2023-04-08 18:09 出处:网络
I am trying to add an alertdialog w开发者_运维知识库ithin an alertdialog.But not able to see the second alertdialog..please help me

I am trying to add an alertdialog w开发者_运维知识库ithin an alertdialog.But not able to see the second alertdialog..please help me here is my code shown

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) {
}}); }


It is gonna be a late answer but you can create an AlertDialog inside onClickListener just like this:

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();
    }
}


I found the way might be it will be helpful for someone so thats why i am sharing:

//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 aren't supposed to let another AlertDialog to be open. If it is really what you want, then change your main AlertDialog to Dialog. This way you can manually add the buttons and functionality you require for manage the secondary 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();
    }
}

The txtSubmit function calling from the onClick event listener. Also for the second alert dialog need to open I have to pass

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

Here, we have to bind the this event using className

When we click on the yup button in the first dialog,it shows the second dialog that insides in the first one

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号