android - losing values from ListView items that have been scrolled out of view -
i changing textview value using button ,some kind of counter.such as, when clicking add button value increasing , decreasing when clicking minus button , when item scrolled out of view losing value,
adapter class:
package com.nerdcastle.nazmul.mealdemo; import android.content.context; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.baseadapter; import android.widget.button; import android.widget.listadapter; import android.widget.textview; import java.util.arraylist; /** * created nazmul on 2/22/2016. */ public class adapterformealsubmission extends baseadapter implements listadapter { private arraylist<string> employeenamelist; private arraylist<string> quantitylist; private context context; int count = 0; public adapterformealsubmission(arraylist<string> employeenamelist, arraylist<string> quantitylist, context context) { this.employeenamelist = employeenamelist; this.quantitylist = quantitylist; this.context = context; } @override public int getcount() { return employeenamelist.size(); } @override public object getitem(int pos) { return employeenamelist.get(pos); } @override public long getitemid(int pos) { return pos; } private static class viewholder { public textview nametv; public button deletebtn; public button addbtn; public textview mealcountertv; } @override public view getview(final int position, view convertview, viewgroup parent) { view view = convertview; final viewholder holder; if (view == null) { layoutinflater inflater = (layoutinflater) context.getsystemservice(context.layout_inflater_service); view = inflater.inflate(r.layout.custom_row_for_meal_submission, null); holder = new viewholder(); holder.nametv = (textview) view.findviewbyid(r.id.nametv); holder.deletebtn = (button) view.findviewbyid(r.id.minus_btn); holder.addbtn = (button) view.findviewbyid(r.id.add_btn); holder.mealcountertv = (textview) view.findviewbyid(r.id.countertv); view.settag(holder); } else { holder = (viewholder) view.gettag(); } holder.nametv.settext(employeenamelist.get(position)); holder.mealcountertv.settext(quantitylist.get(position)); holder.deletebtn.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { count = integer.parseint(holder.mealcountertv.gettext().tostring()); if (count > 0) { count--; } holder.mealcountertv.settext(string.valueof(count)); //notifydatasetchanged(); } }); holder.addbtn.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { count = integer.parseint(holder.mealcountertv.gettext().tostring()); count++; holder.mealcountertv.settext(string.valueof(count)); //notifydatasetchanged(); } }); return view; } }
how stop loosing values?i have read similar question answer not understanding solution.
Comments
Post a Comment