2011-09-06 54 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(根父)的一些觀點,而不是它的子小孩

相關問題