在同一活动中显示2 alertdialog

时间:2013-06-05 13:51:20

标签: android alertdialog android-alertdialog

您好我正在尝试设置2个警告对话框,1个接一个,但它崩溃,我不知道如何解决它,它显示的第一个,但当我点击“确定”它停止(它没有崩溃与红色错误,但它停止工作)

如果有人能够找出问题出在哪里,它将为我节省代码

    AlertDialog dialogo = new AlertDialog.Builder(this)
                 .setTitle("Introduce un nombre")
                 .setMessage("Esta es la primera vez que subes una foto, introduce un nombre que aparecera en tu foto")
                 .setView(input)
                 .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface dialog, int whichButton) {
                         String nombre = String.valueOf(input.getText());
                        if(nombre.equalsIgnoreCase(""))
                        {
                            Toast.makeText(ctx,"¡Tu nombre no puede estar en blanco!", Toast.LENGTH_LONG).show();
                            //entra =1;
                        }
                        else
                        {

                            editor.putString("nombre",nombre);
                            editor.commit();
                            //entra = 0;
                             AlertDialog dialogo3 = new AlertDialog.Builder(ctx)
                             .setTitle("Introduce un nombre")
                             .setMessage("Esta es la primera vez que subes una foto, introduce un nombre que aparecera en tu foto")
                             .setView(input)
                             .setPositiveButton("Hombre", new DialogInterface.OnClickListener() {
                                 public void onClick(DialogInterface dialog, int whichButton) 
                                 {

                                        editor.putString("genero","Hombre");
                                        editor.commit();


                                        GestorSubirFotos gestor = new GestorSubirFotos(ctx,prefs);
                                        String elnombre = prefs.getString("nombre", "");
                                        gestor.execute(getRealPathFromURI(selectedImage),id,elnombre,phoneid);

                                 }
                             }).setNegativeButton("Mujer", new DialogInterface.OnClickListener() {
                                 public void onClick(DialogInterface dialog, int whichButton) {

                                        editor.putString("genero","Mujer");
                                        editor.commit();


                                        GestorSubirFotos gestor = new GestorSubirFotos(ctx,prefs);
                                        String elnombre = prefs.getString("nombre", "");
                                        gestor.execute(getRealPathFromURI(selectedImage),id,elnombre,phoneid);
                                 }
                             }).show();
                        }

                     }
                 }).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface dialog, int whichButton) {
                     //entra =1;
                     }
                 }).show();

我也尝试过这种方式,但它不起作用

     final Builder dialogo3 = new AlertDialog.Builder(ctx)
                 .setTitle("Introduce un nombre")
                 .setMessage("Esta es la primera vez que subes una foto, introduce un nombre que aparecera en tu foto")
                 .setView(input)
                 .setPositiveButton("Hombre", new DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface dialog, int whichButton) 
                     {

                            editor.putString("genero","Hombre");
                            editor.commit();


                            GestorSubirFotos gestor = new GestorSubirFotos(ctx,prefs);
                            String elnombre = prefs.getString("nombre", "");
                            gestor.execute(getRealPathFromURI(selectedImage),id,elnombre,phoneid);

                     }
                 }).setNegativeButton("Mujer", new DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface dialog, int whichButton) {

                            editor.putString("genero","Mujer");
                            editor.commit();


                            GestorSubirFotos gestor = new GestorSubirFotos(ctx,prefs);
                            String elnombre = prefs.getString("nombre", "");
                            gestor.execute(getRealPathFromURI(selectedImage),id,elnombre,phoneid);
                     }
                 });
                  Builder dialogo = new AlertDialog.Builder(this)
                 .setTitle("Introduce un nombre")
                 .setMessage("Esta es la primera vez que subes una foto, introduce un nombre que aparecera en tu foto")
                 .setView(input)
                 .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface dialog, int whichButton) {
                         String nombre = String.valueOf(input.getText());
                        if(nombre.equalsIgnoreCase(""))
                        {
                            Toast.makeText(ctx,"¡Tu nombre no puede estar en blanco!", Toast.LENGTH_LONG).show();
                            //entra =1;
                        }
                        else
                        {

                            editor.putString("nombre",nombre);
                            editor.commit();
                            //entra = 0;

                            Handler handler = new Handler();
                            handler.postDelayed(new Runnable() {
                                public void run() {

                                    dialogo3.show();
                                }
                            }, 2000);

                        }

                     }
                 }).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface dialog, int whichButton) {
                     //entra =1;
                     }
                 });

                  dialogo.show();

2 个答案:

答案 0 :(得分:2)

试试这个,现在应该可以工作--->

 DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
                    //do something
        }
 };
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setMessage("Do you really want to unjoin this event?")
                    .setPositiveButton("Yes", dialogClickListener)
                    .setNegativeButton("No", null)
                    .show();

答案 1 :(得分:1)

在调用.create() .show()创建对话框之前,您缺少调用Builder