i have listview holding items, , 1 of items highlighted.
when click on item want highlighted card no longer highlighted , new item highlighted.
what have done far.
i call adapter list, , 1 of items in list defaultitem, true or false.
the when getview gets called, have if defaultitem, , make change items's ui. save item in class variable called currentdefaultitem.
now when click able change list old highlighted item false , clicked item true. call notifydatasetchanged(); doesn't seem work.
the show getview
@override public view getview(final int position, view v, viewgroup parent) { viewholder holder; card card = getitem(position); if (v == null) { v = minflater.inflate(r.layout.row_cards, parent, false); holder = new viewholder(); holder.tvname = (textview) v.findviewbyid(r.id.tvname); holder.tvbrand = (textview) v.findviewbyid(r.id.tvbrand); holder.tvlastfour = (textview) v.findviewbyid(r.id.tvlastfour); holder.tvcounter = (textview) v.findviewbyid(r.id.tvcounter); holder.tvcard = (imageview) v.findviewbyid(r.id.tvcard); holder.arrow = (imageview) v.findviewbyid(r.id.arrow); holder.tick = (imageview) v.findviewbyid(r.id.tick); if (card.getdefaultcard().intvalue()==(1)){ holder.tick.setvisibility(view.visible); positionofdefault=position; } string brand = card.getbrand(); switch (brand.tolowercase()){ case "visa": holder.tvcard.setimageresource(r.drawable.visa2); break; case "mastercard": holder.tvcard.setimageresource(r.drawable.mastercardx2); break; case "diners": holder.tvcard.setimageresource(r.drawable.dinersclub2); break; case "amex": holder.tvcard.setimageresource(r.drawable.americanexpress2); break; case "jcb": holder.tvcard.setimageresource(r.drawable.jcg2); break; case "discover": holder.tvcard.setimageresource(r.drawable.discover); break; } holder.b_delete_in_list = (button) v.findviewbyid(r.id.b_delete_in_list); holder.b_delete_in_list.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { deletecard(position); } }); holder.b_set_default = (button) v.findviewbyid(r.id.b_set_default); holder.b_set_default.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { updatepaymentmethod(position); } }); // v.settag(holder); // } else { holder = (viewholder) v.gettag(); } holder.tvname.settext(cardlist.get(position).getname().touppercase()); holder.tvbrand.settext(cardlist.get(position).getbrand().touppercase()); holder.tvlastfour.settext(cardlist.get(position).getlast_four_digits()); return v; }
try this
@override public view getview(final int position, view v, viewgroup parent) { viewholder holder; card card = getitem(position); if (v == null) { v = minflater.inflate(r.layout.row_cards, parent, false); holder = new viewholder(); holder.tvname = (textview) v.findviewbyid(r.id.tvname); holder.tvbrand = (textview) v.findviewbyid(r.id.tvbrand); holder.tvlastfour = (textview) v.findviewbyid(r.id.tvlastfour); holder.tvcounter = (textview) v.findviewbyid(r.id.tvcounter); holder.tvcard = (imageview) v.findviewbyid(r.id.tvcard); holder.arrow = (imageview) v.findviewbyid(r.id.arrow); holder.tick = (imageview) v.findviewbyid(r.id.tick); v.settag(holder); } else { holder = (viewholder) v.gettag(); } if (card.getdefaultcard().intvalue()==(1)) { holder.tick.setvisibility(view.visible); positionofdefault=position; } string brand = card.getbrand(); switch (brand.tolowercase()){ case "visa": holder.tvcard.setimageresource(r.drawable.visa2); break; case "mastercard": holder.tvcard.setimageresource(r.drawable.mastercardx2); break; case "diners": holder.tvcard.setimageresource(r.drawable.dinersclub2); break; case "amex": holder.tvcard.setimageresource(r.drawable.americanexpress2); break; case "jcb": holder.tvcard.setimageresource(r.drawable.jcg2); break; case "discover": holder.tvcard.setimageresource(r.drawable.discover); break; } holder.b_delete_in_list = (button)v.findviewbyid(r.id.b_delete_in_list); holder.b_delete_in_list.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { deletecard(position); } }); holder.b_set_default = (button) v.findviewbyid(r.id.b_set_default); holder.b_set_default.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { updatepaymentmethod(position); } }); holder.tvname.settext(cardlist.get(position).getname().touppercase()); holder.tvbrand.settext(cardlist.get(position).getbrand().touppercase()); holder.tvlastfour.settext(cardlist.get(position).getlast_four_digits()); return v; }
Comments
Post a Comment