AlertDialog внутри алертилдиалог андроид - PullRequest
5 голосов
/ 28 сентября 2011

Я пытаюсь добавить alerttdialog в alertstdialog. Но не могу увидеть второй alerttdialog .. Пожалуйста, помогите мне, вот мой код, показанный

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

Ответы [ 4 ]

3 голосов
/ 03 июня 2012

Это будет поздний ответ, но вы можете создать AlertDialog внутри onClickListener так:

public void onClick(DialogInterface dialog, int which) {
                                // TODO Auto-generated method stub
                                if (options[which] == "Manage") {

                                }
                                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();
                                }
                            }
                        });
1 голос
/ 12 февраля 2018

AlertDialogs не должен позволять открывать другой AlertDialog.Если это действительно то, что вам нужно, тогда измените основной AlertDialog на Dialog.Таким образом, вы можете вручную добавить кнопки и функции, необходимые для управления дополнительным AlertDialog

1 голос
/ 20 сентября 2013

Я нашел способ, которым это может быть полезно для кого-то, поэтому я делюсь:

//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();
0 голосов
/ 03 января 2019
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();
    }
}

Функция txtSubmit, вызываемая из прослушивателя событий onClick.Кроме того, чтобы открыть второе диалоговое окно с предупреждением, я должен передать

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

Здесь мы должны привязать это событие, используя className

Когда мы нажимаем кнопку YUP впервый диалог, он показывает второй диалог, который находится внутри первого

...