android - Update only clicked image on GridView -
i have gridview using custom adapter imageview elements. want change imageview onitemclick , have conditions clicking. if clicked item available change image. when change image resource item have update whole gridview adapter.notifydatasetchanged();. gridview has 100 elements updating them costs me half second delay , it's disturbing. how can update elements have changed ?
here getview() method in adapter.
public view getview(final int position, view convertview, viewgroup parent) { point point; view v = null; point=items.get(position); int resid; resid=point.getbackground(); v = inflater.inflate(r.layout.item, null); imageview tv = (imageview) v.findviewbyid(r.id.image_button); tv.setimageresource(resid); return v; } here getbackground() method on point object
public int getbackground(){ int backid=(r.drawable.button_initial); if(isfilled){ backid=(r.drawable.button_clicked); } else if(isavailable){ backid=(r.drawable.button_green); } return backid; } thanks in advance.
you should update point in items list , call notifydatasetchanged();
it best if in activity..like that
list<point> points = new arraylist<point>; adapter adapter = new adapter(points); gridview.setonitemselectedlistener(new adapterview.onitemselectedlistener() { @override public void onitemselected(adapterview<?> parent, view view, int position, long id) { point p = items.get(position); p.setbackground(..); adapter.notifydatasetchanged(); } @override public void onnothingselected(adapterview<?> parent) { } });
Comments
Post a Comment