i want add view dynamically.
linearlayout mdescriptionlayout = (linearlayout)findviewbyid(r.id.descriptionlayout); layoutinflater inflater = (layoutinflater)getsystemservice(layout_inflater_service); view view = inflater.inflate (r.layout.bonus_info_item, null,false); textview counter = (textview) view.findviewbyid(r.id.counter); textview descriptiontext = (textview) view.findviewbyid(r.id.descriptiontext); string [] s = {"","a","b", "c","d"}; (int = 1; < 5; i++){ counter.settext(string.valueof(i)); descriptiontext.settext(s[i]); mdescriptionlayout.addview(view); } this main.xml , want add inflated view in linearlayout(@id/descriptionlayout)
<scrollview android:layout_width="match_parent" android:layout_height="match_parent" android:fillviewport="true"> <relativelayout android:layout_width="match_parent" android:layout_height="match_parent"> <textview android:id="@+id/days" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textsize="12sp"/> <linearlayout android:id="@+id/descriptionlayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/bonuscardtitletext" android:orientation="vertical"> </linearlayout> </relativelayout> </scrollview> i don't understand problem in here can't add view dynamically , got error.
caused by: java.lang.illegalstateexception: specified child has parent. must call removeview() on child's parent first. @ android.view.viewgroup.addviewinner(viewgroup.java:3339) @ android.view.viewgroup.addview(viewgroup.java:3210) @ android.view.viewgroup.addview(viewgroup.java:3155) @ android.view.viewgroup.addview(viewgroup.java:3131)
as error says,
the specified child has parent. must call removeview() on child's parent first.
you trying add child view parent , child has parent( after first iteration of for loop). either declaring , initializing view inside for loop or calling remove() each time should fix it. i'm not sure if trying add layout multiple times if can try
for (int = 1; < 5; i++) { view view = inflater.inflate (r.layout.bonus_info_item, null,false); textview counter = (textview) view.findviewbyid(r.id.counter); textview descriptiontext = (textview) view.findviewbyid(r.id.descriptiontext); counter.settext(string.valueof(i)); descriptiontext.settext(s[i]); mdescriptionlayout.addview(view); } another way call mdescriptionlayout.removeview(view); don't think want in situation. initializing new view each iteration through loop should solve problem.
Comments
Post a Comment