android - Repeted Items in ListView -
i have created custom listview array adapter. contains edittext , other radiobuttons etc. listview shows repeated views after every4 views. i.e hen type in 1st edittext got entered in 5th edittext also. have read , save memory android creates limited views , repeats . , how overcome problem? how use bindview() method? , where? , how?
ublic class questionadapter extends arrayadapter{
context context; int layoutresourceid; question data[] = null; public questionadapter(context context, int layoutresourceid, question[] data) { super(context, layoutresourceid, data); this.layoutresourceid = layoutresourceid; this.context = context; this.data = data; } @suppresslint("newapi") @override public view getview(int position, view convertview, viewgroup parent) { view row = convertview; final weatherholder holder; if(row == null) { layoutinflater inflater = ((activity)context).getlayoutinflater(); row = inflater.inflate(layoutresourceid, parent, false); //row = inflater.inflate(r.layout.listview_item_row, null); holder = new weatherholder(); holder.txtquestion = (textview)row.findviewbyid(r.id.txtquestion); holder.radioyes = (radiobutton)row.findviewbyid(r.id.radioyes); holder.radiono= (radiobutton)row.findviewbyid(r.id.radiono); holder.editresponse=(edittext)row.findviewbyid(r.id.editresponse); holder.radio_group=(radiogroup)row.findviewbyid(r.id.radio_group); row.settag(holder); } else { holder = (weatherholder)row.gettag(); } question question = data[position]; holder.txtquestion.settext(question.question); holder.radioyes.setchecked(true); holder.radioyes.setchecked(false); //holder.editresponse.settext("edit response"); return row; } static class weatherholder { textview txtquestion; radiobutton radioyes; radiobutton radiono; edittext editresponse; radiogroup radio_group; } }
how getview(...) implementation like?
it should this:
@override public view getview(int position, view convertview, viewgroup parent){ view view = convertview; if(view == null) view = inflate(view, parent); myobject obj = objects.get(position); if(obj != null) view = setuicontrols(position, view, obj); return view; } you either inflate new view or reuse 'old' view.
Comments
Post a Comment