i want increment/decrement count , update database when click on button. problem button on adapter, how should apply listener individual button , update count particular user on ui in database.
what have achieved: above image shows have created. www, aaa, xxx users , when click on + or - button want increment count , update in database. below code have done:
admin_dashbord.java activity class
public class admin_dashbord extends activity { //textview a_shop_key,a_shop_name,a_shop_owner,a_shop_ophone,a_shop_address1,a_shop_address2,a_shop_address3,a_e_names; string key,name,owner,ownerphone,address1,address2,address3,empnames,n_emp1,txtname="",getdata; int n_emp; button submit; textview txtv_shopname; linearlayout linear; customer_adapter custom; //arraylist<no_of_emp_pojo> getdata; arraylist<no_of_emp_pojo> newdata=new arraylist<no_of_emp_pojo>(); arraylist<no_of_emp_pojo> temp=new arraylist<no_of_emp_pojo>(); network_class net=new network_class(); listview li; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.admin_dashbord); linear=(linearlayout)findviewbyid(r.id.admin_dashbord_layout2); submit=(button)findviewbyid(r.id.dashbord_shop_submit); li=(listview)findviewbyid(r.id.emp_list); txtv_shopname=(textview)findviewbyid(r.id.shopname); intent intent=getintent(); bundle b=intent.getextras(); key=b.getstring("shop_id"); name=b.getstring("shop_name"); owner=b.getstring("owner_name"); ownerphone=b.getstring("owner_phone"); address1=b.getstring("address1"); address2=b.getstring("address2"); address3=b.getstring("address3"); //empnames=b.getstring("emp_names"); n_emp1=b.getstring("n_emp"); n_emp=integer.parseint(b.getstring("n_emp")); txtv_shopname.settext(name); newdata=getdetail(key); system.out.println("this admin dashboard"); custom=new customer_adapter(getapplicationcontext(), r.layout.shop_listview_item, newdata); li.setadapter(custom); //newdata.clear(); custom.notifydatasetchanged(); } public arraylist<no_of_emp_pojo> getdetail(final string key) { thread th=new thread(new runnable() { @override public void run() { getdata=net.n_employees(key); system.out.println("in thread first"); temp = no_emp(getdata); } }); th.start(); try { th.join(); } catch(exception e) { system.out.println("thread jpoin problem "+e.getmessage()); } return temp; } public arraylist<no_of_emp_pojo> no_emp(string result) { arraylist<no_of_emp_pojo> emp=new arraylist<no_of_emp_pojo>(); try { jsonarray j_array=new jsonarray(result); for(int i=0; i<j_array.length(); i++) { jsonobject j_object=j_array.getjsonobject(i); no_of_emp_pojo no=new no_of_emp_pojo(); no.setid(j_object.getint("emp_id")); no.setcount(j_object.getint("count")); no.sete_name(j_object.getstring("emp_name")); emp.add(no); } } catch(jsonexception e) { log.e("log_tag", "error parsing in area......"+e.tostring()); log.e("log_answers","second error parsing in area......"+result); } system.out.println("this parsing "+emp.tostring()); return emp; } }
customer_adapter.java
public class customer_adapter extends arrayadapter<no_of_emp_pojo> { private int res; private layoutinflater inflaters; button signal,increment,decrement; public customer_adapter(context context, int resource, list<no_of_emp_pojo> objects) { super(context, resource, objects); res=resource; inflaters=layoutinflater.from(context); } @override public view getview(int position, view convertview, viewgroup parent) { convertview=(linearlayout)inflaters.inflate(res, null); textview count=(textview)convertview.findviewbyid(r.id.show_waiting); textview name=(textview)convertview.findviewbyid(r.id.show_emp_name); signal=(button)convertview.findviewbyid(r.id.green_signal); increment=(button)convertview.findviewbyid(r.id.pluse_signal); decrement=(button)convertview.findviewbyid(r.id.minus_signal); count.settextcolor(color.parsecolor("#000000")); name.settextcolor(color.parsecolor("#000000")); no_of_emp_pojo no=getitem(position); count.settext(integer.tostring(no.getcount())); name.settext(no.gete_name()); increment.setonclicklistener(no.addlistner); decrement.setonclicklistener(no.sublistner); return convertview; } }
no_of_emp_pojo.java
public class no_of_emp_pojo { int count,id; public int getid() { return id; } public void setid(int id) { this.id = id; } string e_name; public int getcount() { return count; } public void setcount(int count) { this.count = count; } public string gete_name() { return e_name; } public void sete_name(string e_name) { this.e_name = e_name; } public onclicklistener addlistner=new onclicklistener() { @override public void onclick(view v) { // todo auto-generated method stub system.out.println("add count "+ getid()); } }; public onclicklistener sublistner=new onclicklistener() { @override public void onclick(view v) { system.out.println("minus count "+getid()); } }; }
i surfed , found, wrote onclicklistener in no_of_emp_pojo class when click on button prints id not able update on ui in database because gives me listener in pojo on admin_dashbord.java activity become more easy update count on adapter value in database.
add click listener on button of item in getview: increment.setonclicklistener(this); decrement.setonclicklistener(this);
then add tag of object on these button in getview: increment.settag(no); // "no" cuttent object(mode) decrement.settag(no); // "no" cuttent object(mode)
now implement onclick method in adapter:
public void onclick(view v) { switch(v.getid()) { case r.id.pluse_signal: no_of_emp_pojo selecteditem = (no_of_emp_pojo)v.gettag(); //now can update item in db or in place. break; case r.id.minus_signal: no_of_emp_pojo selecteditem1 = (no_of_emp_pojo)v.gettag(); //now can update item in db or in place. break; } }
and click listnder called every item of listview. , can model related every item.
Comments
Post a Comment