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