android - onItemClickListener only opens first item's span menu -
im trying spannable listview. when click on item in listview should span , reveal 2 buttons. far have managed create customadapter that.
my problem when click on item first item on listview spanned. how fix , how set onclicklistener 2 buttons.
my listview activity:
protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); listview productlist=(listview)findviewbyid(android.r.id.list); productlist.setonitemclicklistener(new adapterview.onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { product product= (product) parent.getitematposition(position); button checkbutton= (button)findviewbyid(r.id.checkbutton); button deletebutton=(button)findviewbyid(r.id.deletebutton); checkbutton.setvisibility(view.visible); deletebutton.setvisibility(view.visible); } }); dbhandler=new dbhandler(this,null,null,1); // getproductsfromdb(); adapter= new customadapter(this,productnames); productlist.setadapter(adapter); } public void addnewproduct(view view){ edittext userinput=(edittext)findviewbyid(r.id.userinput); userinput.setvisibility(view.visible); string productname=userinput.gettext().tostring(); if(productname.equals(""))return; product product=new product(); product.set_productname(productname); product.set_checked(false); productnames.add(product); //dbhandler.addproduct(product); adapter.notifydatasetchanged(); userinput.settext(""); //getproductsfromdb();
customadapter:
customadapter(context context, arraylist<product> productnames) { super(context,r.layout.custom_list_row ,productnames); } @override public view getview(int position, view convertview, viewgroup parent) { layoutinflater inflater=layoutinflater.from(getcontext()); view customview= inflater.inflate(r.layout.custom_list_row,parent,false); final product singleproduct=getitem(position); textview productname=(textview)customview.findviewbyid(r.id.productname); button checkbutton = (button)customview.findviewbyid(r.id.checkbutton); button deletebutton = (button)customview.findviewbyid(r.id.deletebutton); productname.settext(singleproduct.get_productname()); return customview; }
you did not post custom_list_row
layout, can guess code in layout have viewgroup or view (let's assume textview display product name in code) item , 2 buttons below have visibility set gone @ first. want when users click on item, set 2 buttons below item visible. here 1 way so:
- remove setonitemclicklistener on productlist activity
in getview() method of customadapter set onclicklistener product name view. this:
textview productname=(textview)customview.findviewbyid(r.id.productname);
button checkbutton = (button)customview.findviewbyid(r.id.checkbutton);
button deletebutton = (button)customview.findviewbyid(r.id.deletebutton);
productname.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { checkbutton.setvisibility(view.visible); deletebutton.setvisibility(view.visible); } }
Comments
Post a Comment