Sunday 15 September 2013

Android listview itemclick change text button -



Android listview itemclick change text button -

i had problem doing android project. can help me problem, want alter text of button onitemclick.

this customeradapter:

@override public view getview(int position, view convertview, viewgroup parent) { layoutinflater minflater = (layoutinflater) context .getsystemservice(activity.layout_inflater_service); if (convertview == null) { convertview = minflater.inflate(r.layout.list_item, null); holder = new viewholder(); holder.member_name = (textview) convertview .findviewbyid(r.id.member_name); holder.product_icons = (imageview) convertview .findviewbyid(r.id.product_icons); holder.status = (textview) convertview.findviewbyid(r.id.status); holder.addtocart = (button) convertview .findviewbyid(r.id.btnaddtocart); convertview.settag(holder); rowitem row_pos = rowitems.get(position); holder.product_icons.setimageresource(row_pos.getprofile_pic_id()); holder.member_name.settext(row_pos.getmember_name()); holder.status.settext("p" + row_pos.getstatus()); holder.addtocart.settext(" add together cart"); } else { holder = (viewholder) convertview.gettag(); } homecoming convertview;

here code mainactivity.java contains onitemclick listerner

public void onitemclick(adapterview<?> parent, view view, int position, long id) { rowitem item = rowitems.get(position); string member_name = item.getmember_name(); int product_icons = item.getprofile_pic_id(); string status = item.getstatus(); button cart= (button) view.findviewbyid(r.id.btnaddtocart); cart.settext("added cart"); }

let me kill problem of yours..

1: button alter when click listview item

ans: button responds click events.. if set in listview takes click events listview.. on create

listview focusable android:focusable="true" button not focusable android:focusable="false"

and add together this

android:descendantfocusability="beforedescendants"

on listview.. makes listview receive focus before child.. move on click events edited version of code

public void onitemclick(adapterview<?> parent, view view, int position, long id) { rowitem item = rowitems.get(position); string member_name = item.getmember_name(); int product_icons = item.getprofile_pic_id(); string status = item.getstatus(); button cart= (button) view.findviewbyid(r.id.btnaddtocart); cart.settext("added cart"); toast.maketext(this.getapplicationcontext(),"added cart: " + member_name, toast.length_short).show(); }

i remove codes cleanliness , remove code

newadapter = new customadapter(this, rowitems); mylistview.setadapter(newadapter); newadapter.notifydatasetchanged();

because sets adapter on 1 time again , don't see button beingness set , refreshes also..lol.. pitches, seek , allow me know if works if add together items listview or remove items , want show user dont need re-set adapter phone call notifydatasetchanged() method..

eidt 2: disabling item

listview.setonitemclicklistener(new onitemclicklistener() { @override public void onitemclick(adapterview<?> arg0, view arg1, int arg2, long arg3) { // todo auto-generated method stub if(cart.gettext().equals("added cart")){ //checking text of button arg1.setfocusable(false); arg1.setfocusableintouchmode(false); arg1.setalpha((float)0.2);// dont trust line-(it works) want give idea, there soo many ways of making view transparent. } }

this makes clicked event not respond focus , sets transparent.. if want button not respond click events, setenabled false, , focus false..on button "cart". wrote notepad check correctness of code or codding silliness

happy codes

android listview onitemclicklistener

No comments:

Post a Comment