android - On Button Click in recyclerview how to increment counter and show in textview -
i working on app displays images using recycler view , volley.i have imageview, textview , buttons in each card. trying add functionality button when clicked, count number of clicks , display in textview. getting error "variable 'count' assesed within inner class,needs declared final" trying this.what doing wrong? code
import android.content.context; import android.media.image; import android.support.v7.widget.recyclerview; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.button; import android.widget.imagebutton; import android.widget.progressbar; import android.widget.textview; import com.android.volley.toolbox.imageloader; import com.android.volley.toolbox.networkimageview; import org.w3c.dom.text; import java.util.arraylist; import java.util.list; /** * created belal on 11/9/2015. */ public class cardadapter extends recyclerview.adapter<cardadapter.viewholder> { //imageloader load image private imageloader imageloader; private context context; //list store superheroes list<superhero> superheroes; //constructor of class public cardadapter(list<superhero> superheroes, context context){ super(); //getting superheroes this.superheroes = superheroes; this.context = context; } @override public viewholder oncreateviewholder(viewgroup parent, int viewtype) { view v = layoutinflater.from(parent.getcontext()) .inflate(r.layout.superheroes_list, parent, false); viewholder viewholder = new viewholder(v); return viewholder; } @override public void onbindviewholder(viewholder holder, int position) { int count = 0; //getting particular item list superhero superhero = superheroes.get(position); //loading image url imageloader = customvolleyrequest.getinstance(context).getimageloader(); imageloader.get(superhero.getimageurl(), imageloader.getimagelistener(holder.imageview, r.drawable.image, android.r.drawable.ic_dialog_alert)); //showing data on views holder.imageview.setimageurl(superhero.getimageurl(), imageloader); holder.textviewname.settext(superhero.getname()); holder.textviewpublisher.settext(superhero.getpublisher()); holder.textviewlikes.settext(superhero.getlikes()); holder.txtcount.settext(string.valueof(count)); holder.custom_button.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { count ++; } }); } @override public int getitemcount() { return superheroes.size(); } class viewholder extends recyclerview.viewholder{ //views public networkimageview imageview; public textview textviewname; public textview textviewpublisher; public textview textviewlikes; public textview txtcount; public imagebutton custom_button; //initializing views public viewholder(view itemview) { super(itemview); imageview = (networkimageview) itemview.findviewbyid(r.id.imageviewhero); textviewname = (textview) itemview.findviewbyid(r.id.textviewname); textviewpublisher = (textview) itemview.findviewbyid(r.id.textviewpublisher); textviewlikes = (textview) itemview.findviewbyid(r.id.textviewlikes); txtcount = (textview)itemview.findviewbyid(r.id.txtcount); custom_button = (imagebutton) itemview.findviewbyid(r.id.custom_button); } } }
place holder.txtcount.settext(string.valueof(count));
inside onclick function , declare int count =0;
below declare class. this
public class cardadapter extends recyclerview.adapter<cardadapter.viewholder> {
int count =0;
//imageloader load image private imageloader imageloader;
Comments
Post a Comment