android - ListView Adapter: Unable to start activity ComponentInfo{..} : java.lang.NullPointerException -


i'm trying start new activity, , i'm getting nullpointerexception. i'm not quite sure getting nullpointerexception. during debug app crashes when creating adapter, can't see did wrong nullpointerexception in code.

error log:

   java.lang.runtimeexception: unable start activity componentinfo{com.app.app/com.app.app.spaactivity}: java.lang.nullpointerexception         @ android.app.activitythread.performlaunchactivity(activitythread.java:2394)         @ android.app.activitythread.handlelaunchactivity(activitythread.java:2446)         @ android.app.activitythread.access$600(activitythread.java:165)         @ android.app.activitythread$h.handlemessage(activitythread.java:1373)         @ android.os.handler.dispatchmessage(handler.java:107)         @ android.os.looper.loop(looper.java:194)         @ android.app.activitythread.main(activitythread.java:5434)         @ java.lang.reflect.method.invokenative(native method)         @ java.lang.reflect.method.invoke(method.java:525)         @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:834)         @ com.android.internal.os.zygoteinit.main(zygoteinit.java:601)         @ dalvik.system.nativestart.main(native method)  caused by: java.lang.nullpointerexception         @ com.app.adapter.spalistadapter.<init>(spalistadapter.java:25)         @ com.app.app.spaactivity.oncreate(spaactivity.java:43)         @ android.app.activity.performcreate(activity.java:5122)         @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1146)         @ android.app.activitythread.performlaunchactivity(activitythread.java:2358)         at android.app.activitythread.handlelaunchactivity(activitythread.java:2446)         at android.app.activitythread.access$600(activitythread.java:165)         at android.app.activitythread$h.handlemessage(activitythread.java:1373)         at android.os.handler.dispatchmessage(handler.java:107)         at android.os.looper.loop(looper.java:194)         at android.app.activitythread.main(activitythread.java:5434)         at java.lang.reflect.method.invokenative(native method)         at java.lang.reflect.method.invoke(method.java:525)         at com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:834)         at com.android.internal.os.zygoteinit.main(zygoteinit.java:601)         at dalvik.system.nativestart.main(native method) 

spaactivity.java

public class spaactivity extends activity {      private progressdialog pdialog;     private list<spa> spalist = new arraylist<spa>();     private listview listview;     private spalistadapter adapter;      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_spa);          listview = (listview) findviewbyid(r.id.list);         adapter = new spalistadapter(this, spalist);          listview.setadapter(adapter); 

activity_spa.xml

    <relativelayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent">      <listview         android:id="@+id/list"         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:divider="@color/list_divider"         android:dividerheight="1dp"         android:listselector="@layout/list_row_selector" />  </relativelayout> 

the adapter listview:

public class spalistadapter extends baseadapter {     private activity activity;     private layoutinflater inflater;     private list<spa> spaitems;     imageloader imageloader = appcontroller.getinstance().getimageloader();      public spalistadapter(activity activity, list<spa> spaitems) {         this.activity = activity;         this.spaitems = spaitems;     }      @override     public int getcount() {         return spaitems.size();     }      @override     public object getitem(int location) {         return spaitems.get(location);     }      @override     public long getitemid(int position) {         return position;     }      @override     public view getview(int position, view convertview, viewgroup parent) {          if (inflater == null)             inflater = (layoutinflater) activity                     .getsystemservice(context.layout_inflater_service);         if (convertview == null)             convertview = inflater.inflate(r.layout.list_row, null);          if (imageloader == null)             imageloader = appcontroller.getinstance().getimageloader();         networkimageview thumbnail = (networkimageview) convertview                 .findviewbyid(r.id.thumbnail);         textview title = (textview) convertview.findviewbyid(r.id.title);         textview duration = (textview) convertview.findviewbyid(r.id.duration);         textview description = (textview) convertview.findviewbyid(r.id.description);         textview price = (textview) convertview.findviewbyid(r.id.price);          // getting spa data row         spa s = spaitems.get(position);          // thumbnail image         thumbnail.setimageurl(s.getthumbnailurl(), imageloader);          // title         title.settext(s.gettitle());          // duration         duration.settext("time: " + string.valueof(s.getduration()));          // description         description.settext(string.valueof(s.getdescription()));          // price         price.settext("price: " + string.valueof(s.getprice()));          return convertview;     }  } 

and list_row.xml adapter

<?xml version="1.0" encoding="utf-8"?> <relativelayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:background="@layout/list_row_selector"     android:padding="8dp" >      <!-- thumbnail image -->     <com.android.volley.toolbox.networkimageview         android:id="@+id/thumbnail"         android:layout_width="80dp"         android:layout_height="80dp"         android:layout_alignparentleft="true"         android:layout_marginright="8dp" />      <!-- spa title -->     <textview         android:id="@+id/title"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_aligntop="@+id/thumbnail"         android:layout_torightof="@+id/thumbnail"         android:textsize="@dimen/title"         android:textstyle="bold" />      <!-- duration -->     <textview         android:id="@+id/duration"         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:layout_below="@id/title"         android:layout_margintop="1dip"         android:layout_torightof="@+id/thumbnail"         android:textsize="@dimen/rating" />      <!-- description -->     <textview         android:id="@+id/description"         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:layout_below="@id/duration"         android:layout_margintop="5dp"         android:layout_torightof="@+id/thumbnail"         android:textcolor="@color/genre"         android:textsize="@dimen/genre" />      <!-- price -->     <textview         android:id="@+id/price"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_alignparentbottom="true"         android:layout_alignparentright="true"         android:textcolor="@color/year"         android:textsize="@dimen/year" />  </relativelayout> 

the error on line 25 in spalistadatper class. method getitemid() needs modified.

 @override     public long getitemid(int position) {         return spaitems.indexof(getitem(position));     } 

Comments

Popular posts from this blog

c++ - No viable overloaded operator for references a map -

java - Custom OutputStreamAppender not run: LOGBACK: No context given for <MYAPPENDER> -

java - Cannot secure connection using TLS -