android - Change image resource on click of an image button in a list view -
i have list adapter sets onclick listeners imagebuttons when populating list view. i'm trying create image resource changes onclick. i'm having problem retrieving image resource in onclick listener.
list adapter:
public class listadapter extends baseadapter { context context; protected list<post> cityfeed; layoutinflater inflater; public listadapter(context context, list<post> cityfeed) { this.cityfeed = cityfeed; this.inflater = layoutinflater.from(context); this.context = context; } public int getcount() { homecoming cityfeed.size(); } public post getitem(int position) { homecoming cityfeed.get(position); } public long getitemid(int position) { homecoming cityfeed.get(position).getdrawableid(); } public view getview(int position, view convertview, viewgroup parent) { viewholder holder; if (convertview == null) { holder = new viewholder(); // inflate list item convertview = this.inflater.inflate(r.layout.row_layout, parent, false); // views holder.profilepic = (imageview) convertview.findviewbyid(r.id.profilepic); holder.username = (textview) convertview.findviewbyid(r.id.username); holder.day = (textview) convertview.findviewbyid(r.id.day); holder.rating = (textview) convertview.findviewbyid(r.id.rating); holder.textpost = (textview) convertview.findviewbyid(r.id.textpost); holder.ratingup = (imagebutton) convertview.findviewbyid(r.id.ratingup); holder.ratingdown = (imagebutton) convertview.findviewbyid(r.id.ratingdown); convertview.settag(holder); holder.ratingup.setonclicklistener(new onclicklistener() { @override public void onclick(view convertview) { // if image source equals drawable then... // else alter image source drawable... toast.maketext( context, "rate up", toast.length_short).show(); } }); holder.ratingdown.setonclicklistener(new onclicklistener() { @override public void onclick(view convertview) { toast.maketext( context, "rate down", toast.length_short).show(); } }); } else { holder = (viewholder) convertview.gettag(); } post post = cityfeed.get(position); holder.profilepic.setimageresource(post.getdrawableid()); holder.username.settext(post.getusername()); holder.day.settext(post.getday()); holder.rating.settext(post.getrating()); holder.textpost.settext(post.gettext()); homecoming convertview; } private class viewholder { imageview profilepic; textview username; textview day; textview rating; textview textpost; imageview ratingup; imageview ratingdown; }
the toasts work fine can't figure out how handle image resources. see onclick listeners in getview method. in advance.
drawable mydrawable1= //get drawable 1 here drawable mydrawable2= //get drawable 2 here if ((post)getitem(pos).isratedup){ holder.ratingup.setimagedrawable(mydrawable2); } else{ holder.ratingup.setimagedrawable(mydrawable1); } holder.ratingup.setonclicklistener(new onclicklistener() { @override public void onclick(view convertview) { // if image source equals drawable then... // else alter image source drawable... if(((imagebutton)convertview).getdrawable()==mydrawable1){ ((imagebutton)convertview).setimagedrawable(mydrawable2); ((post)getitem(pos)).setratedup(true); }else{ ((imagebutton)convertview).setimagedrawable(mydrawable1); ((post)getitem(pos)).setratedup(false); } } });
add post.class;
private boolean isratedup=false; public boolean isratedup(){ homecoming this.isratedup; } public void setratedup(boolean israted){ this.isratedup=israted; }
android listview onclicklistener imagebutton
No comments:
Post a Comment