Android List view buttons text color changing when scrolling top to bottom? -
i have listview , populated listview textview , button using custom adapter.i had generated click event button in custom adapter.in click event trying change button text , color,up here working fine when scroll listview , down text color of other button changing.i had stop here past couple of days...
here code had tried far
@override public view getview(final int position, view convertview, viewgroup parent) { view v=convertview; final viewholder holder; if(convertview ==null) { convertview = minlfater.inflate(r.layout.attendancelistview,null); holder = new viewholder(); holder.b1 = (button)convertview.findviewbyid(r.id.row3); holder.tv1 = (textview)convertview.findviewbyid(r.id.row1); holder.tv2 = (textview)convertview.findviewbyid(r.id.row2); convertview.settag(holder); } else { holder =(viewholder) convertview.gettag(); } //list<studentdata> data = list.get(position).rno; holder.tv1.settext(string.valueof(list.get(position).rno)); holder.tv2.settext(list.get(position).studentname); holder.b1.settext(list.get(position).attendance); holder.b1.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { if(holder.b1.gettext().equals("present")) { holder.b1.settext("absent"); //list.get(position).put("attendance", "absent"); holder.b1.settextcolor(color.red); } else if(holder.b1.gettext().equals("absent")) { holder.b1.settext("present"); //list.get(position).put("attendance", "present"); holder.b1.settextcolor(color.green); } string rno1= string.valueof(holder.tv1.gettext()); name=string.valueof(holder.tv2.gettext()); } }); return convertview; } static class viewholder { button b1; textview tv1,tv2,tv3; }
if holder.b1 button text changing reason not handling getview properly.
i guess returns integer id
list.get(position).rno so need store id in arraylist example
//declare outside of getview(). arraylist<integer> your_number = new arraylist(); and in button click
holder.b1.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { if(holder.b1.gettext().equals("present")) { holder.b1.settext("absent"); //list.get(position).put("attendance", "absent"); holder.b1.settextcolor(color.red); your_number.add(list.get(position).rno); } else if(holder.b1.gettext().equals("absent")) { holder.b1.settext("present"); //list.get(position).put("attendance", "present"); holder.b1.settextcolor(color.green); your_number.remove(list.get(position).rno); } string rno1= string.valueof(holder.tv1.gettext()); name=string.valueof(holder.tv2.gettext()); } }); and in getview()
if (your_number.contains(list.get(position).rno)){ //set text }else{ //set text }
Comments
Post a Comment