2013-06-06 94 views
0

我有一個警告對話框的問題,我有2個警告對話框,一個應該在用戶點擊另一個OK後顯示,問題是當我嘗試顯示第二個即使我使用一個處理程序在第一個處理器後12秒顯示它仍然不起作用),它會崩潰,如果它們是獨自一個但不在一起,它們都可以工作。Android中的警報對話框錯誤

當它崩潰時,它啓動類文件編輯器,當我繼續模擬,然後崩潰的錯誤,我認爲這是因爲第一個對話框仍然存在(即使用戶點擊一個選項),但我沒有看到任何功能來解除對話框或類似的東西。

這是代碼:

final 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;         
         } 

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



        Builder dialogo3 = new AlertDialog.Builder(this) 
        .setTitle("Introduce un nombre mamahuevo") 
        .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(); 

           dialogo.show(); 
           //entra = 0;         
          } 

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

這是錯誤:

06-06 15:43:15.765: E/AndroidRuntime(3008): FATAL EXCEPTION: main 
    06-06 15:43:15.765: E/AndroidRuntime(3008): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first. 
    06-06 15:43:15.765: E/AndroidRuntime(3008):  at android.view.ViewGroup.addViewInner(ViewGroup.java:3430) 
    06-06 15:43:15.765: E/AndroidRuntime(3008):  at android.view.ViewGroup.addView(ViewGroup.java:3301) 
    06-06 15:43:15.765: E/AndroidRuntime(3008):  at android.view.ViewGroup.addView(ViewGroup.java:3277) 
    06-06 15:43:15.765: E/AndroidRuntime(3008):  at com.android.internal.app.AlertController.setupView(AlertController.java:416) 
    06-06 15:43:15.765: E/AndroidRuntime(3008):  at com.android.internal.app.AlertController.installContent(AlertController.java:244) 
    06-06 15:43:15.765: E/AndroidRuntime(3008):  at android.app.AlertDialog.onCreate(AlertDialog.java:337) 
    06-06 15:43:15.765: E/AndroidRuntime(3008):  at android.app.Dialog.dispatchOnCreate(Dialog.java:355) 
    06-06 15:43:15.765: E/AndroidRuntime(3008):  at android.app.Dialog.show(Dialog.java:260) 
    06-06 15:43:15.765: E/AndroidRuntime(3008):  at android.app.AlertDialog$Builder.show(AlertDialog.java:951) 
    06-06 15:43:15.765: E/AndroidRuntime(3008):  at sxa.sexolia.sexyono.Opciones$6.onClick(Opciones.java:183) 
    06-06 15:43:15.765: E/AndroidRuntime(3008):  at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:169) 
    06-06 15:43:15.765: E/AndroidRuntime(3008):  at android.os.Handler.dispatchMessage(Handler.java:99) 
    06-06 15:43:15.765: E/AndroidRuntime(3008):  at android.os.Looper.loop(Looper.java:153) 
    06-06 15:43:15.765: E/AndroidRuntime(3008):  at android.app.ActivityThread.main(ActivityThread.java:5297) 
    06-06 15:43:15.765: E/AndroidRuntime(3008):  at java.lang.reflect.Method.invokeNative(Native Method) 
    06-06 15:43:15.765: E/AndroidRuntime(3008):  at java.lang.reflect.Method.invoke(Method.java:511) 
    06-06 15:43:15.765: E/AndroidRuntime(3008):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) 
    06-06 15:43:15.765: E/AndroidRuntime(3008):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
    06-06 15:43:15.765: E/AndroidRuntime(3008):  at dalvik.system.NativeStart.main(Native Method) 
+3

https://www.google.com/search?q=The+specified+child+already+has+a+parent.+You+must+call + removeView%28%29 + +上的+子%-27 +父+第一&即= UTF-8&OE = UTF-8&水溶液= T&RLS = org.mo zilla:en-US:official&client = firefox-a&channel = fflb – xyz

+0

[問題:指定的孩子已經有父母。您必須首先調用子視圖的父級removeView()](http://stackoverflow.com/questions/15446182/issue-the-specified-child-already-has-a-parent-you-must-call-removeview-on -t) – njzk2

+0

這裏我可以看到一個名爲'input'的變量。它是什麼類型? – Nizam

回答

0

問題解決的問題是與.SetView(輸入)墜毀時,我tryied把它放在兩個對話框之後我從其中一個刪除它的作品,謝謝所有