android - How to add search function to Lazy loading listview -


i using http request data in json format loads image well.

i trying implement ontextchanged function crashes whenever enter alphabet edittext box.

/** asynctask parse json data , load listview */     private class listviewloadertask extends asynctask<string, void, simpleadapter>{          jsonobject jobject;         // doing parsing of xml data in non-ui thread         @override         protected simpleadapter doinbackground(string... strjson) {             try{                 jobject = new jsonobject(strjson[0]);                 storejsonparser countryjsonparser = new storejsonparser();                 countryjsonparser.parse(jobject);             }catch(exception e){                 log.d("json exception1",e.tostring());             }              // instantiating json parser class             storejsonparser countryjsonparser = new storejsonparser();              // list object store parsed countries list             list<hashmap<string, object>> countries = null;              try{                 // getting parsed data list construct                 countries = countryjsonparser.parse(jobject);             }catch(exception e){                 log.d("exception",e.tostring());             }              // keys used in hashmap             string[] = { "country","flag","details"};              // ids of views in listview_layout             int[] = { r.id.storename,r.id.icon,r.id.details};              // instantiating adapter store each items             // r.layout.listview_layout defines layout of each item             adapter = new simpleadapter(getbasecontext(), countries, r.layout.restaurant_list, from, to);             log.d("what adapter ?", string.valueof(adapter));             return adapter;         } 

and on postexecute implement ontextchanged function.

protected void onpostexecute(simpleadapter adapter) {              // setting adapter listview             mlistview.setadapter(adapter);              searchbox.addtextchangedlistener(new textwatcher() {                  public void ontextchanged(charsequence cs, int arg1, int arg2, int arg3) {                     // when user changed text                     choosecategory.this.adapter.getfilter().filter(cs);                 }                  public void beforetextchanged(charsequence arg0, int arg1, int arg2,                                               int arg3) {                     // todo auto-generated method stub                  }                  public void aftertextchanged(editable arg0) {                     // todo auto-generated method stub                     //choosecategory.this.adapter.getfilter().filter(arg0);                 }             });              for(int i=0;i<adapter.getcount();i++){                 hashmap<string, object> hm = (hashmap<string, object>) adapter.getitem(i);                 string imgurl = (string) hm.get("flag_path");                 imageloadertask imageloadertask = new imageloadertask();                  hashmap<string, object> hmdownload = new hashmap<string, object>();                 hm.put("flag_path",imgurl);                 hm.put("position", i);                  // starting imageloadertask download , populate image in listview                 imageloadertask.execute(hm);             }         } 

i have tried doing log.d on countries variable, shows correct json data. error got logcat

java.lang.nullpointerexception             @ android.widget.simpleadapter.getcount(simpleadapter.java:93)             @ android.widget.adapterview.checkfocus(adapterview.java:713)             @ android.widget.adapterview$adapterdatasetobserver.oninvalidated(adapterview.java:836)             @ android.widget.abslistview$adapterdatasetobserver.oninvalidated(abslistview.java:6288)             @ android.database.datasetobservable.notifyinvalidated(datasetobservable.java:50)             @ android.widget.baseadapter.notifydatasetinvalidated(baseadapter.java:59)             @ android.widget.simpleadapter$simplefilter.publishresults(simpleadapter.java:383)             @ android.widget.filter$resultshandler.handlemessage(filter.java:282)             @ android.os.handler.dispatchmessage(handler.java:102)             @ android.os.looper.loop(looper.java:136)             @ android.app.activitythread.main(activitythread.java:5017)             @ java.lang.reflect.method.invokenative(native method)             @ java.lang.reflect.method.invoke(method.java:515)             @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:779)             @ com.android.internal.os.zygoteinit.main(zygoteinit.java:595)             @ dalvik.system.nativestart.main(native method) 

thanks in advance!


Comments

Popular posts from this blog

How to connect android app to App engine -

gcc - MinGW's ld cannot perform PE operations on non PE output file -

php - display validation error message next to the textbox in codeigniter -