2011-09-06 19 views
11

我的代码是在这里指定的孩子已经有一个父

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

当我运行像这样

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) 

此代码IGOT错误plz帮助我在这

回答

38

错误你越来越难以找到,因为你的代码遍布各地,但错误意味着你正在添加一个已经在屏幕上准备好的(孩子)View(h作为父母)。

这可以在任何地方,很难有这个帖子的说法,但是,例如:

这一个大概的工作原理:

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

ed是新的,所以没有一个家长。

但是我找不到yes1的声明,所以这一个可能是culprint。或者可能是no1

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

检查您所有的addView电话。 (提示:在某个地方有一个行号,使用它)

要想在评论中回答你的问题,你必须遵循这些规则;

  • 绝不要再添加任何视图。
  • 当视图媒体链接使用(例如,你findViewById得到它,不要使用它addView
  • 当你要添加视图,使用addView有新的看法。
  • 您可以添加这些新视图中的几个视图可以在一个视图中显示,但不能多次添加该视图。
  • 只能通过更改某些东西来重新使用视图。您可以重新使用某个变量,但需要如果你想使用addView重新添加它,新的视图

而且,我不能st详细讨论这个问题:使用错误中的行号找出哪条线产生错误。看看你在那里添加什么,并试图找出上述帮助为什么不起作用。

+1

但你看我的代码我有多个单选按钮。他们也有看法,我该怎么做? – Piyush

+1

我写RadioGroup rg1 = new RadioGroup(this); \t \t \t RadioButton yes1 = new RadioButton(this); \t \t \t RadioButton no1 = new RadioButton(this);如果条件为 – Piyush

+1

试着回答这个问题,但你的问题不太清楚。尽管如此,你应该能够解决这个问题。 – Nanne

3

这意味着你要添加视图没有它就像

一个LinearLayout包含两个按钮父母,如果你添加这些按钮,出现这种异常必须添加LinearLayout(根父)的一些观点,而不是它的子小孩

相关问题