Android setadapter Null pointer -


i have following fragment

public class tab2 extends fragment {  // progress dialog private progressdialog pdialog;  // creating json parser object jsonparser jparser = new jsonparser();  arraylist<hashmap<string, string>> contactslist;  // url contacts list //private static string url_all_contacts = "http://192.168.100.28/andriod_product_demo/get_all_contacts.php";  // json node names private static final string tag_success = "success"; private static final string tag_contacts = "contacts"; private static final string tag_pid = "pid"; private static final string tag_name = "name"; private static final string tag_type = "type";  listview lv; //..get user id tinydb tinydb objtdb;  // contacts jsonarray jsonarray contacts = null;  @override public view oncreateview(layoutinflater inflater, @nullable viewgroup container, @nullable bundle savedinstancestate) {     view v = inflater.inflate(r.layout.tab2,container,false);      objtdb=new tinydb(getactivity());      // hashmap listview     contactslist = new arraylist<hashmap<string, string>>();      // listview     //lv = getlistview();     lv = (listview) v.findviewbyid(r.id.list);      // loading contacts in background thread     new loadallcontacts().execute();        /*// on selecting single product     // launching edit contact screen     lv.setonitemclicklistener(new onitemclicklistener() {          @override         public void onitemclick(adapterview<?> parent, view view,                 int position, long id) {              // getting values selected listitem             string pid = ((textview) view.findviewbyid(r.id.pid)).gettext()                     .tostring();              // starting new intent             intent in = new intent(getactivity().getapplicationcontext(),                     editproductactivity.class);             // sending pid next activity             in.putextra(tag_pid, pid);              // starting new activity , expecting response             startactivityforresult(in, 100);          }     });*/      return v; }   /**  * background async task load contact making http request  * */ class loadallcontacts extends asynctask<string, string, string> {      /**      * before starting background thread show progress dialog      * */     @override     protected void onpreexecute() {         super.onpreexecute();         pdialog = new progressdialog(getactivity());         pdialog.setmessage("loading contacts. please wait...");         pdialog.setindeterminate(false);         pdialog.setcancelable(false);         pdialog.show();     }      /**      * getting contacts url      * */     protected string doinbackground(string... args) {         // building parameters         list<namevaluepair> params = new arraylist<namevaluepair>();         params.add(new basicnamevaluepair("tag", "get_contact_list"));          params.add(new basicnamevaluepair("user_id", string.valueof(objtdb.getlong(appconfig.usr_log_in_id))));         // getting json string url         jsonobject json = jparser.getjsonfromurl(appconfig.url_contacts, params);          // check log cat json reponse         log.d("all contacts: ", json.tostring());          try {             // checking success tag             int success = json.getint(tag_success);              if (success == 1) {                 // contacts found                 // getting array of contacts                 contacts = json.getjsonarray(tag_contacts);                  // looping through contacts                 (int = 0; < contacts.length(); i++) {                     jsonobject c = contacts.getjsonobject(i);                      // storing each json item in variable                     string id = c.getstring(tag_pid);                     string name = c.getstring(tag_name);                     string type = c.getstring(tag_type);                      // creating new hashmap                     hashmap<string, string> map = new hashmap<string, string>();                      // adding each child node hashmap key => value                     map.put(tag_pid, id);                     map.put(tag_name, name);                     map.put(tag_type, type);                      // adding hashlist arraylist                     contactslist.add(map);                 }             } /*else {                 // no contacts found                 // launch add new product activity                 intent = new intent(getapplicationcontext(),                         newproductactivity.class);                 // closing previous activities                 i.addflags(intent.flag_activity_clear_top);                 startactivity(i);             }*/         } catch (jsonexception e) {             e.printstacktrace();         }          return null;     }      /**      * after completing background task dismiss progress dialog      * **/     protected void onpostexecute(string file_url) {         // dismiss dialog after getting contacts         pdialog.dismiss();         // updating ui background thread         getactivity().runonuithread(new runnable() {             public void run() {                 /**                  * updating parsed json data listview                  * */                 listadapter adapter = new simpleadapter(                         getactivity(), contactslist,                         r.layout.list_item, new string[] { tag_pid,                                 tag_name,tag_type},                         new int[] { r.id.pid, r.id.name ,r.id.type});                 // updating listview                 lv.setadapter(adapter);                  //setlistadapter(adapter);             }         });      }  } 

}

and getting following error (from logcat) on line lv.setadapter(adapter); ,

06-20 09:23:26.996: e/androidruntime(1550): fatal exception: main 06-20 09:23:26.996: e/androidruntime(1550): process: com.example.simplifimed, pid: 1550 06-20 09:23:26.996: e/androidruntime(1550): java.lang.nullpointerexception: attempt invoke virtual method 'void android.widget.listview.setadapter(android.widget.listadapter)' on null object reference 06-20 09:23:26.996: e/androidruntime(1550): @ com.example.simplifimed.tab2$loadallcontacts$1.run(tab2.java:256) 06-20 09:23:26.996: e/androidruntime(1550): @ android.app.activity.runonuithread(activity.java:5293) 06-20 09:23:26.996: e/androidruntime(1550): @ com.example.simplifimed.tab2$loadallcontacts.onpostexecute(tab2.java:245) 06-20 09:23:26.996: e/androidruntime(1550): @ com.example.simplifimed.tab2$loadallcontacts.onpostexecute(tab2.java:1) 06-20 09:23:26.996: e/androidruntime(1550): @ android.os.asynctask.finish(asynctask.java:636) 06-20 09:23:26.996: e/androidruntime(1550): @ android.os.asynctask.access$500(asynctask.java:177) 06-20 09:23:26.996: e/androidruntime(1550): @ android.os.asynctask$internalhandler.handlemessage(asynctask.java:653) 06-20 09:23:26.996: e/androidruntime(1550): @ android.os.handler.dispatchmessage(handler.java:102) 06-20 09:23:26.996: e/androidruntime(1550): @ android.os.looper.loop(looper.java:135) 06-20 09:23:26.996: e/androidruntime(1550): @ android.app.activitythread.main(activitythread.java:5257) 06-20 09:23:26.996: e/androidruntime(1550): @ java.lang.reflect.method.invoke(native method) 06-20 09:23:26.996: e/androidruntime(1550): @ java.lang.reflect.method.invoke(method.java:372) 06-20 09:23:26.996: e/androidruntime(1550): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:903) 06-20 09:23:26.996: e/androidruntime(1550): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:698)

the tab2.xml is,

<?xml version="1.0" encoding="utf-8"?>  <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <!-- main listview       give id value list(@android:id/list) --> <listview     android:id="@android:id/list"     android:layout_width="fill_parent"     android:layout_height="wrap_content"/>  </linearlayout> 

and list_item.xml follows,

 <?xml version="1.0" encoding="utf-8"?>  <!-- layout individual news entries in list -->  <tablelayout xmlns:android="http://schemas.android.com/apk/res/android"  android:id="@+id/tablelayout1"  android:layout_width="fill_parent"  android:layout_height="fill_parent" >  <tablerow     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:padding="5dip" >      <!-- product id (pid) - hidden - used pass other activity -->     <textview     android:id="@+id/pid"     android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:visibility="gone" />      <!-- name label -->     <textview     android:id="@+id/name"     android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:paddingtop="6dip"     android:paddingleft="6dip"     android:textsize="17dip"     android:textstyle="bold" />       <!-- type label -->     <textview     android:id="@+id/type"     android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:paddingtop="6dip"     android:paddingleft="6dip"     android:textsize="17dip"     android:textstyle="bold" />                            </tablerow>  </tablelayout> 

hi please try extend fragment replacing listfragment. suc has follows:

public class mylistfragment extends listfragment 

in case follows :

public class tab2 extends listfragment 

now able listview.

or

<?xml version="1.0" encoding="utf-8"?>  <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">  <listview  android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="wrap_content"/> </linearlayout> 

Comments

Popular posts from this blog

powershell Start-Process exit code -1073741502 when used with Credential from a windows service environment -

twig - Using Twigbridge in a Laravel 5.1 Package -

c# - LINQ join Entities from HashSet's, Join vs Dictionary vs HashSet performance -