2011-09-06 13 views
11

mi código está aquíel niño especificado ya tiene un padre

if(c!=null) 
{   
    c.moveToFirst(); 
    String col = c.getString(2); // 
    check.setText(col); 
    check.setVisibility(0); 

    while(!c.isAfterLast()) 
    { 
     String col1 = c.getString(1); 
     String col2 = c.getString(2);  
     String col3 = c.getString(3); 

      while(!c.isAfterLast()) 
     { 
      TextView que1 = new TextView(this); 
      que1.setText(col1); 
      lymn.addView(que1); 

      if(col3.equals("Date")) 
      { 
       DatePicker dp = new DatePicker(this); 
       lymn.addView(dp); 
       break; 
      } 

      if(col3.equals("User Input")) 
        { 
       EditText ed = new EditText(this); 
       ed.setWidth(250); 

       lymn.addView(ed); 
       break; 
      } 

      if(col3.equals("YES/NO")) 
      { 
       yes1.setText("Yes"); 
       no1.setText("NO"); 

       rg1.addView(yes1); 
       rg1.addView(no1); 
       lymn.addView(rg1); 

       break; 
      } 

      if(col3.equals("High Average Low")) 
      { 
       High1.setText("High"); 
       Avg1.setText("Average"); 
       Low1.setText("Low"); 

       rg2.addView(High1); 
       rg2.addView(Avg1); 
       rg2.addView(Low1); 

       lymn.addView(rg2); 

       break; 
      } 

      if(col3.equals("Excellent Good Average Poor")) 
      { 
       exce1.setText("Excellent"); 
       good1.setText("Good"); 
       avg11.setText("Average"); 
       poor1.setText("Poor"); 

       rg3.addView(exce1); 
       rg3.addView(good1); 
       rg3.addView(avg11); 
       rg3.addView(poor1); 

       lymn.addView(rg3); 

       break; 
      } 
      break;  
     } 

     c.moveToNext(); 
    } 
} 

cuando funciono este error código Igot como esto

09-06 11:34:37.777: WARN/Exception(27814): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first. 
09-06 11:34:37.777: WARN/Exception(27814):  at android.view.ViewGroup.addViewInner(ViewGroup.java:1970) 
09-06 11:34:37.777: WARN/Exception(27814):  at android.view.ViewGroup.addView(ViewGroup.java:1865) 
09-06 11:34:37.777: WARN/Exception(27814):  at android.view.ViewGroup.addView(ViewGroup.java:1822) 
09-06 11:34:37.777: WARN/Exception(27814):  at android.view.ViewGroup.addView(ViewGroup.java:1802) 
09-06 11:34:37.777: WARN/Exception(27814):  at com.ezee.app.user1.LoadCheckIn(user1.java:256) 
09-06 11:34:37.777: WARN/Exception(27814):  at com.ezee.app.user1.onCreate(user1.java:61) 
09-06 11:34:37.777: WARN/Exception(27814):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
09-06 11:34:37.777: WARN/Exception(27814):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
09-06 11:34:37.777: WARN/Exception(27814):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
09-06 11:34:37.777: WARN/Exception(27814):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
09-06 11:34:37.777: WARN/Exception(27814):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
09-06 11:34:37.777: WARN/Exception(27814):  at android.os.Handler.dispatchMessage(Handler.java:99) 
09-06 11:34:37.777: WARN/Exception(27814):  at android.os.Looper.loop(Looper.java:123) 
09-06 11:34:37.777: WARN/Exception(27814):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
09-06 11:34:37.777: WARN/Exception(27814):  at java.lang.reflect.Method.invokeNative(Native Method) 
09-06 11:34:37.777: WARN/Exception(27814):  at java.lang.reflect.Method.invoke(Method.java:521) 
09-06 11:34:37.777: WARN/Exception(27814):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
09-06 11:34:37.777: WARN/Exception(27814):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
09-06 11:34:37.777: WARN/Exception(27814):  at dalvik.system.NativeStart.main(Native Method) 

PLZ me ayude en este

Respuesta

38

El error está obteniendo es difícil de encontrar porque su código está por todas partes, pero el error significa que está agregando un View (niño) que ya está en la pantalla (h como padre).

Esto podría estar en cualquier lugar, difícil de decir con este post, pero por ejemplo:

Ésta probablemente funcione:

EditText ed = new EditText(this); 
    ed.setWidth(250); 
    lymn.addView(ed); 

ed es nuevo, por lo que no tiene un padre.

Pero no puedo encontrar la declaración de yes1, por lo que esta podría ser la culpable. O tal vez no1.

yes1.setText("Yes"); 
    no1.setText("NO"); 
    rg1.addView(yes1); 
    rg1.addView(no1); 
    lymn.addView(rg1); 

comprobar todos sus addView llamadas. (sugerencia: hay un número de línea en ese error en algún lugar. úselo)

Para tratar de responder a su pregunta en el comentario, debe seguir estas reglas;

  • Nunca agregue ninguna vista más de una vez.
  • Cuando una vista se utiliza allready (por ejemplo, lo tienes con findViewById, no utilice addView en él.
  • Cuando se desea añadir un punto de vista, utilizar addView con una nueva vista.
  • Puede añadir varias de estas vistas nuevas para una vista, pero no puede agregar esa vista varias veces.
  • No puede volver a utilizar una vista simplemente cambiando algunas cosas. PUEDE reutilizar una variable, pero debe hacer una nueva vista si desea volver a agregarla usando addView.

Y no puedo ress esto más: descubra, usando el número de línea en el error, qué línea produce el error. Mira lo que estás agregando allí, y trata de descubrir con la ayuda anterior por qué eso no funciona.

+1

pero ves mi código tengo múltiples botones de radio. ¿También tienen vista de eso que hago? – Piyush

+1

escribo RadioGroup rg1 = new RadioGroup (this); \t \t \t RadioButton yes1 = new RadioButton (esto); \t \t \t RadioButton no1 = new RadioButton (esto); arriba primero si condición – Piyush

+1

Intenta responder a esto, pero tu pregunta no está muy clara. Sin embargo, deberías ser capaz de resolverlo con ayuda. – Nanne

3

Esto significa que usted está agregando una vista sin sus padres como

Un LinearLayout contiene dos botones si agrega los botones hasta cierto punto de vista esta excepción se produce hay que añadir LinearLayout (padre raíz) en lugar de es Sub Niños

Cuestiones relacionadas