java - My simple custom listview show wrong items, not working as intented. Can't see what is wrong -



java - My simple custom listview show wrong items, not working as intented. Can't see what is wrong -

i trying create this: http://i.stack.imgur.com/l8zoc.png

however, ran problem. when create list adapter, supposed list of 8 items. however, shows first 4 of these items in random order 2 times. see wrong code? in advance.

public class myactivity extends activity{ string headers[]; string image_urls[]; list<mymenuitem> menuitems; listview mylistview; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_my); menuitems = new arraylist<mymenuitem>(); headers = getresources().getstringarray(r.array.header_names); image_urls = getresources().getstringarray(r.array.image_urls); (int = 0; < headers.length; i++) { mymenuitem item = new mymenuitem(headers[i], image_urls[i]); menuitems.add(item); } mylistview = (listview) findviewbyid(r.id.list); menuadapter adapter = new menuadapter(this, menuitems); mylistview.setadapter(adapter); mylistview.setonitemclicklistener(this); } public class mymenuitem { private string item_header; private string item_image_url; public mymenuitem(string item_header, string item_image_url){ this.item_header=item_header; this.item_image_url=item_image_url; } public string getitem_header(){ homecoming item_header; } public void setitem_header(string item_header){ this.item_header=item_header; } public string getitem_image_url(){ homecoming item_image_url; } public void setitem_image_url(string item_image_url){ this.item_image_url=item_image_url; } } public class menuadapter extends baseadapter{ context context; list<mymenuitem> menuitems; menuadapter(context context, list<mymenuitem> rowitems) { this.context = context; this.menuitems = rowitems; } @override public int getcount() { homecoming menuitems.size(); } @override public object getitem(int position) { homecoming menuitems.get(position); } @override public long getitemid(int position) { homecoming menuitems.indexof(getitem(position)); } private class viewholder { imageview ivmenu; textview tvmenuheader; } @override public view getview(int position, view convertview, viewgroup parent) { viewholder holder = null; layoutinflater minflater = (layoutinflater) context.getsystemservice(activity.layout_inflater_service); if (convertview == null) { convertview = minflater.inflate(r.layout.menu_item, null); holder = new viewholder(); holder.tvmenuheader = (textview) convertview.findviewbyid(r.id.tvmenuheader); holder.ivmenu = (imageview) convertview.findviewbyid(r.id.ivmenuitem); mymenuitem row_pos = menuitems.get(position); picasso.with(context) .load(row_pos.getitem_image_url()) .placeholder(r.drawable.empty) .error(r.drawable.error) .into(holder.ivmenu); holder.tvmenuheader.settext(row_pos.getitem_header()); log.e("test", "headers:" + row_pos.getitem_header()); convertview.settag(holder); } else { holder = (viewholder) convertview.gettag(); } homecoming convertview; } }

you setting info when convertview null.so when not null,list items inflated info of previous list items. getview should this

@override public view getview(int position, view convertview, viewgroup parent) { viewholder holder = null; layoutinflater minflater = (layoutinflater) context.getsystemservice(activity.layout_inflater_service); if (convertview == null) { convertview = minflater.inflate(r.layout.menu_item, null); holder = new viewholder(); holder.tvmenuheader = (textview) convertview.findviewbyid(r.id.tvmenuheader); holder.ivmenu = (imageview) convertview.findviewbyid(r.id.ivmenuitem); convertview.settag(holder); } else { holder = (viewholder) convertview.gettag(); } mymenuitem row_pos = menuitems.get(position); picasso.with(context) .load(row_pos.getitem_image_url()) .placeholder(r.drawable.empty) .error(r.drawable.error) .into(holder.ivmenu); holder.tvmenuheader.settext(row_pos.getitem_header()); log.e("test", "headers:" + row_pos.getitem_header()); homecoming convertview; }

java android list listview baseadapter

Comments

Popular posts from this blog

php - Edges appear in image after resizing -

ios8 - iOS custom keyboard - preserve state between appearances -

Delphi change the assembly code of a running process -