android - json, listadapters and multiple on click activity for listviews -


i using api calls pull out json entry , fill in list view. problem having implementing different listeners inside of list view. list view looks this:

enter image description here

the listview implement onitemclick listener , checkbox listener. till able populate listview , generate onitemclick listener, failed implement checkbox listener. tries able invoke checkbox listener after listview item clicked , 1 of checkboxes(out of several).

the code looks now:

public class allprojects extends sherlocklistactivity{       arraylist<hashmap<string, string>> all_list;     progressdialog progressdialog;     actionmode mmode;     listview list;     layout layoutlist;     checkbox projectcheckbox;       @override     protected void oncreate(bundle savedinstancestate) {     // todo auto-generated method stub     super.oncreate(savedinstancestate);     setcontentview(r.layout.projectlist);      actionbar bar = getsupportactionbar();     bar.setdisplayshowtitleenabled(false);     bar.setdisplayhomeasupenabled(false);     bar.setnavigationmode(com.actionbarsherlock.app.actionbar.navigation_mode_list);       spinneradapter mspinneradapter = arrayadapter.createfromresource(getapplicationcontext(), r.array.actionbarnavlist, android.r.layout.simple_dropdown_item_1line);     onnavigationlistener mnavigationlistner = new onnavigationlistener() {      @override     public boolean onnavigationitemselected(int itemposition, long itemid) {     switch (itemposition) {     case 0: //  toast.maketext(getapplicationcontext(), "you viewing projects", toast.length_long).show();     break;     case 1:     intent intent = new intent(allprojects.this, myproject.class);     startactivity(intent);     finish();     break;      default:     break;     }      return false;     }     };     bar.setlistnavigationcallbacks(mspinneradapter, mnavigationlistner);     bar.setselectednavigationitem(0);      all_list = new arraylist<hashmap<string, string>>();      asyncprojectlist connection = new asyncprojectlist();     connection.execute();     }      private actionmode.callback mactioncallback = new actionmode.callback() {      @override     public boolean onprepareactionmode(actionmode mode, menu menu) {     // todo auto-generated method stub     return false;     }      @override     public void ondestroyactionmode(actionmode mode) {     // todo auto-generated method stub      }      @override     public boolean oncreateactionmode(actionmode mode, menu menu) {     // todo auto-generated method stub     menuinflater inflater = mode.getmenuinflater();     inflater.inflate(r.menu.contextual_menu_add_project, menu);     return true;     }      @override     public boolean onactionitemclicked(actionmode mode, menuitem item) {     // todo auto-generated method stub     switch(item.getitemid()){     case r.id.cancelactionmenu:     break;     case r.id.addtoprojectsmenu:     break;     default:     break;     }     return false;     }     };       @override     protected void onpostcreate(bundle savedinstancestate) {         super.onpostcreate(savedinstancestate);         getsupportactionbar().setsubtitle("press start selection");     }      private class asyncprojectlist extends asynctask<void, void, void>{     jsonarray jsar;     jsonobject jsob;     string project_title, project_sector;     @override     protected void onpreexecute() {     progressdialog =  new progressdialog(allprojects.this);     progressdialog.setcancelable(false);     progressdialog.setmessage("loading...");     progressdialog.setprogressstyle(progressdialog.style_spinner);     progressdialog.setprogress(0);     progressdialog.show();     }      @override     protected void doinbackground(void... params) {     userfunctions user = new userfunctions();     jsob = user.allprojects();     try {     jsar = jsob.getjsonarray("data");      } catch (jsonexception e1) {     e1.printstacktrace();     }     for(int i=0; i<jsar.length(); i++){     try {     jsonobject newobj = jsar.getjsonobject(i);     project_title = newobj.getstring("title");     project_sector = newobj.getstring("sector");      hashmap<string, string> single = new hashmap<string, string>();     single.put("title", project_title);     single.put("sector", project_sector);      all_list.add(single);      } catch (jsonexception e) {     e.printstacktrace();     }      } //  log.i("json object", jsar.tostring());     return null;     }      @override     protected void onpostexecute(void result) {     listadapter adapter = new simpleadapter(getapplicationcontext(), all_list, r.layout.projectlist_frame,      new string[]{"title","sector"}, new int[]{r.id.projecttitle, r.id.projectsector});     setlistadapter(adapter);     progressdialog.dismiss();     list = getlistview();     list.setonitemclicklistener(new adapterview.onitemclicklistener() {      @override     public void onitemclick(adapterview<?> parent, view viewclicked,     int position, long id) {      intent toindividual = new intent(allprojects.this, individual_project.class);     try {     toindividual.putextra("nid", jsar.getjsonobject(position).getstring("id"));     startactivity(toindividual);      } catch (jsonexception e) {     e.printstacktrace();     }     projectcheckbox = (checkbox)findviewbyid(r.id.checkbox);     projectcheckbox.setonclicklistener(new onclicklistener() {      @override     public void onclick(view arg0) {     // todo auto-generated method stub     if(projectcheckbox.ischecked()){     log.i("checked", "checked");     startactionmode(mactioncallback);     }else{     log.i("unchecked","unchecked");     startactionmode(mactioncallback).finish();     }     }     });      }      });       }       }    } 


Popular posts from this blog

php - How should I create my API for mobile applications (Needs Authentication) -

python 3.x - PyQt5 - Signal : pyqtSignal no method connect -

Apache NiFi ExecuteScript: Groovy script to replace Json values via a mapping file -