android - dynamically adding views and toasting it -
i'm adding views dynamically. mean that, there 1 edittext
, button add
, button submit
.
1.onclick of button add
i'm inflating new layout has 1 edittext
and button remove
. if button add
keep on pressed add inflated layout respectively.
2.onclick of button submit
has toast edittext
values of inflated layout.
i'm getting last edittext
toast, , toast rest of edittext
didn't show. how this?
public class mainactivity extends activity implements onclicklistener { button add, submit; arraylist<view> viewlist; linearlayout lin_layout; edittext et1, et2; string s1; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); et1 = (edittext) findviewbyid(r.id.edittext1); add = (button) findviewbyid(r.id.button_add); submit = (button) findviewbyid(r.id.bsubmit); lin_layout = (linearlayout) findviewbyid(r.id.linearlayout_view); viewlist = new arraylist<view>(); add.setonclicklistener(this); submit.setonclicklistener(this); } @override public void onclick(view v) { switch (v.getid()) { case r.id.button_add: if (et1.length() == 0) { toast.maketext(getapplicationcontext(), "filed cant left empty", 0).show(); } else { layoutinflater layoutinflater = (layoutinflater) getbasecontext() .getsystemservice(context.layout_inflater_service); final view addview = layoutinflater.inflate( r.layout.inflate_layout, null); et2 = (edittext) addview.findviewbyid(r.id.edit); viewlist.add(addview); lin_layout.addview(addview); button remove = (button) addview .findviewbyid(r.id.button_remove); remove.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { lin_layout.removeview((view) v.getparent()); viewlist.remove((view) v.getparent()); } }); } break; case r.id.bsubmit: s1 = et2.gettext().tostring(); toast.maketext(getapplicationcontext(), "items: " + s1,toast.length_short).show(); break; } } }
the solution simple, create instance of edittext locally, work :) now, going fine problem creates when use reference old edittext
@override public void onclick(view v) { switch (v.getid()) { case r.id.button_add: if (et1.length() == 0) { toast.maketext(getapplicationcontext(), "filed cant left empty", 0).show(); } else { layoutinflater layoutinflater = (layoutinflater) getbasecontext().getsystemservice(context.layout_inflater_service); final view addview = layoutinflater.inflate(r.layout.inflate_layout, null); edittext et2 = (edittext) addview.findviewbyid(r.id.edit); viewlist.add(addview); lin_layout.addview(addview); button remove = (button) addview.findviewbyid(r.id.button_remove); remove.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { lin_layout.removeview((view) v.getparent()); viewlist.remove((view) v.getparent()); } }); } break; case r.id.bsubmit: s1 = et2.gettext().tostring(); toast.maketext(getapplicationcontext(), "items: " + s1, toast.length_short).show(); break; } }
Comments
Post a Comment