2013-06-05 78 views
3

嗨,我想设置2个警告对话框,其他1个,但它崩溃,我不知道如何解决它,第一个显示,但当我点击“确定“它停止(它不崩溃与红色的错误,但它停止工作)在同一个活动中显示2个警报对话框

,如果有人可以找出问题出在哪里它会救我有代码

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

我也tryed这种方式,但它也不起作用

 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(); 
+0

请把全部代码。 – Harshid

+0

认为您一次无法对同一个AlertDialog实例多次使用show()。 – avinash

回答

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(); 
+0

我试了一下,仍然是相同的错误:S – D4rWiNS

+0

你好,我已编辑的代码,请检查它 –

+0

嗨与此代码,当我穿上metoh onclick dialogo3.show();它崩溃,所以仍然不工作:S – D4rWiNS

1

您在致电.show()致电Builder创建对话框之前,您正在呼叫.create()

+0

我不认为这是问题,因为第一个显示(最终我做到了),但是当我点击“确定”它停止显示文件编辑器,而不是源的红色错误 – D4rWiNS

相关问题