java - list view in fragments null pointer exception -


i trying setup swipe refresh in fragment, fetches objects parse. every time, seem null pointer exception on setadapter , list view. although both of them correctly initialized not null.

my recentsadapter:

package com.astuetz.viewpager.extensions.sample;  import android.content.context; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.baseadapter; import android.widget.textview;  import java.util.arraylist; import java.util.hashmap;  public class recentsadapter extends baseadapter {          layoutinflater inflater;         context context;         arraylist<hashmap<string,string>> items = null;          public recentsadapter(context context,arraylist<hashmap<string,string>> items)         {             super();             this.context = context;             this.items = items;             inflater = (layoutinflater) context.getsystemservice(context.layout_inflater_service);          }          @override         public int getcount()         {             return items.size();         }          @override         public object getitem(int position)         {             return items.get(position);         }          @override         public long getitemid(int position)         {             return position;         }          @override         public view getview(int position, view convertview, viewgroup parent)         {             view v = convertview;             myholder holder = null;             if(v == null)             {                 v = inflater.inflate(r.layout.recents_list_item,parent,false);                 holder = new myholder(v);                 v.settag(holder);             }              else             {                 holder = (myholder) v.gettag();             }              holder.title.settext(items.get(position).get("title"));             holder.author.settext(items.get(position).get("author"));             holder.dept.settext(items.get(position).get("dept"));             holder.price.settext(items.get(position).get("price"));     //        holder.place.settext(items.get(position).get("place"));               return v;         }          class myholder         {              textview dept,title,author,price,place;              public myholder(view view)             {                 title = (textview) view.findviewbyid(r.id.book_title);                 dept = (textview)view.findviewbyid(r.id.dept_name);                 author = (textview) view.findviewbyid(r.id.author_name);                 price = (textview)view.findviewbyid(r.id.price_list);     //            place = (textview)view.findviewbyid(r.id.place_list);             }          }     } 

my recent_card.xml defines list view , swipe refresh:

<?xml version="1.0" encoding="utf-8"?> <framelayout xmlns:android="http://schemas.android.com/apk/res/android"              xmlns:card_view="http://schemas.android.com/apk/res-auto"              android:layout_width="match_parent"              android:layout_height="match_parent">      <android.support.v4.widget.swiperefreshlayout         android:id="@+id/container"         android:layout_width="match_parent"         android:layout_height="match_parent">      <android.support.v7.widget.cardview         android:id="@+id/recents_card"         android:layout_width="match_parent"         android:layout_height="match_parent"         android:layout_margin="8dp"         card_view:cardbackgroundcolor="@android:color/white"         card_view:cardcornerradius="8dp"         android:padding="8dp">          <listview             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:id="@+id/recents_list"             android:divider="@color/dividercolor"             android:dividerheight="1dp"/>      </android.support.v7.widget.cardview>     </android.support.v4.widget.swiperefreshlayout> </framelayout> 

and recentscardfragment.java implements them:

/*  * copyright (c) 2013 andreas stuetz <andreas.stuetz@gmail.com>  *  * licensed under apache license, version 2.0 (the "license");  * may not use file except in compliance license.  * may obtain copy of license @  *  *      http://www.apache.org/licenses/license-2.0  *  * unless required applicable law or agreed in writing, software  * distributed under license distributed on "as is" basis,  * without warranties or conditions of kind, either express or implied.  * see license specific language governing permissions ,  * limitations under license.  */  package com.astuetz.viewpager.extensions.sample;  import android.app.alertdialog; import android.app.progressdialog; import android.content.context; import android.net.connectivitymanager; import android.net.networkinfo; import android.os.bundle; import android.support.v4.app.fragment; import android.support.v4.view.viewcompat; import android.support.v4.widget.swiperefreshlayout; import android.util.log; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.adapter; import android.widget.listview; import android.widget.toast;   import com.parse.findcallback; import com.parse.getcallback; import com.parse.parse; import com.parse.parseexception; import com.parse.parseobject; import com.parse.parsequery;    import java.util.arraylist; import java.util.hashmap; import java.util.list;    public class recentscardfragment extends fragment implements swiperefreshlayout.onrefreshlistener {    listview  recentslist = (listview)getactivity().findviewbyid(r.id.recents_list);      private swiperefreshlayout refreshbooks;       arraylist<hashmap<string,string>> items = new arraylist<>();          //private  progressdialog progress;       public static recentscardfragment newinstance() {         recentscardfragment f = new recentscardfragment();             return f;         }      @override     public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) {         view rootview = inflater.inflate(r.layout.recents_card,container,false);         viewcompat.setelevation(rootview,50);         refreshbooks = (swiperefreshlayout) rootview.findviewbyid(r.id.container);         refreshbooks.setonrefreshlistener(this);           getbooks();           recentsadapter  adapter = new recentsadapter(getactivity().getapplicationcontext(), items);          recentslist.setadapter(adapter);           return rootview;     }       private arraylist<hashmap<string,string>> getbooks(){          final parsequery<parseobject> query = parsequery.getquery("posted");         query.orderbydescending("createdat");          query.findinbackground(new findcallback<parseobject>() {               @override             public void done(list<parseobject> parseobjects, parseexception e) {                   if (e == null){                      log.w("parse","inside getbooks()");                     (parseobject book : parseobjects) {                          hashmap<string, string> test = new hashmap<>();                          string dept = book.getstring("department");                         string title = book.getstring("title");                         string author = book.getstring("author");                         number price_num = book.getnumber("price");                         string price = string.valueof(price_num);                         string place = book.getstring("place");                         string desp = book.getstring("description");                          test.put("dept", dept);                         test.put("title", title);                         test.put("author", author);                         test.put("price", price);                         test.put("place", place);                         test.put("description", desp);                          items.add(test);                         }                   } else {                      log.d("books", "error: " + e.getmessage());                  }              }          });          return items;     }       @override     public void onrefresh(){          refreshbooks.setrefreshing(true);         updatebooks();    }      private void updatebooks(){          toast.maketext(getactivity(),"refresh", toast.length_short).show();          items.addall(getbooks());        refreshbooks.setrefreshing(false);     }      @override     public void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);     }       @override     public void onactivitycreated(bundle savedinstancestate) {         super.onactivitycreated(savedinstancestate);      }    } 

here logcat:

06-14 02:44:52.485    2373-2373/com.astuetz.viewpager.extensions.sample i/process﹕ sending signal. pid: 2373 sig: 9 06-14 02:58:26.624    2502-2524/com.astuetz.viewpager.extensions.sample d/openglrenderer﹕ render dirty regions requested: true 06-14 02:58:26.644    2502-2502/com.astuetz.viewpager.extensions.sample d/﹕ hostconnection::get() new host connection established 0xabb86710, tid 2502 06-14 02:58:27.720    2502-2502/com.astuetz.viewpager.extensions.sample d/atlas﹕ validating map... 06-14 02:58:28.692    2502-2502/com.astuetz.viewpager.extensions.sample i/choreographer﹕ skipped 57 frames!  application may doing work on main thread. 06-14 02:58:28.716    2502-2502/com.astuetz.viewpager.extensions.sample d/androidruntime﹕ shutting down vm 06-14 02:58:28.720    2502-2502/com.astuetz.viewpager.extensions.sample e/androidruntime﹕ fatal exception: main     process: com.astuetz.viewpager.extensions.sample, pid: 2502     java.lang.nullpointerexception: attempt invoke virtual method 'android.view.view android.support.v4.app.fragmentactivity.findviewbyid(int)' on null object reference             @ com.astuetz.viewpager.extensions.sample.recentscardfragment.<init>(recentscardfragment.java:54)             @ com.astuetz.viewpager.extensions.sample.recentscardfragment.newinstance(recentscardfragment.java:68)             @ com.astuetz.viewpager.extensions.sample.mainactivity$mypageradapter.getitem(mainactivity.java:133)             @ android.support.v4.app.fragmentpageradapter.instantiateitem(fragmentpageradapter.java:97)             @ android.support.v4.view.viewpager.addnewitem(viewpager.java:837)             @ android.support.v4.view.viewpager.populate(viewpager.java:987)             @ android.support.v4.view.viewpager.populate(viewpager.java:919)             @ android.support.v4.view.viewpager.onmeasure(viewpager.java:1441)             @ android.view.view.measure(view.java:17430)             @ android.widget.linearlayout.measurevertical(linearlayout.java:875)             @ android.widget.linearlayout.onmeasure(linearlayout.java:613)             @ android.view.view.measure(view.java:17430)             @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5463)             @ android.widget.framelayout.onmeasure(framelayout.java:430)             @ android.view.view.measure(view.java:17430)             @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5463)             @ android.widget.linearlayout.measurechildbeforelayout(linearlayout.java:1436)             @ android.widget.linearlayout.measurevertical(linearlayout.java:722)             @ android.widget.linearlayout.onmeasure(linearlayout.java:613)             @ android.view.view.measure(view.java:17430)             @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5463)             @ android.widget.framelayout.onmeasure(framelayout.java:430)             @ android.view.view.measure(view.java:17430)             @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5463)             @ android.widget.linearlayout.measurechildbeforelayout(linearlayout.java:1436)             @ android.widget.linearlayout.measurevertical(linearlayout.java:722)             @ android.widget.linearlayout.onmeasure(linearlayout.java:613)             @ android.view.view.measure(view.java:17430)             @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5463)             @ android.widget.framelayout.onmeasure(framelayout.java:430)             @ com.android.internal.policy.impl.phonewindow$decorview.onmeasure(phonewindow.java:2560)             @ android.view.view.measure(view.java:17430)             @ android.view.viewrootimpl.performmeasure(viewrootimpl.java:2001)             @ android.view.viewrootimpl.measurehierarchy(viewrootimpl.java:1166)             @ android.view.viewrootimpl.performtraversals(viewrootimpl.java:1372)             @ android.view.viewrootimpl.dotraversal(viewrootimpl.java:1054)             @ android.view.viewrootimpl$traversalrunnable.run(viewrootimpl.java:5779)             @ android.view.choreographer$callbackrecord.run(choreographer.java:767)             @ android.view.choreographer.docallbacks(choreographer.java:580)             @ android.view.choreographer.doframe(choreographer.java:550)             @ android.view.choreographer$framedisplayeventreceiver.run(choreographer.java:753)             @ android.os.handler.handlecallback(handler.java:739)             @ android.os.handler.dispatchmessage(handler.java:95)             @ android.os.looper.loop(looper.java:135)             @ android.app.activitythread.main(activitythread.java:5221)             @ java.lang.reflect.method.invoke(native method)             @ java.lang.reflect.method.invoke(method.java:372)             @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:899)             @ com.android.internal.os.zygoteinit.main(zygoteinit.java:694) 06-14 02:58:32.992    2502-2502/com.astuetz.viewpager.extensions.sample i/process﹕ sending signal. pid: 2502 sig: 9 

i keep on getting null pointer exceptions list view recents list, or @ line, recentslist.ssetadapter(adapter).

although, there several answered questions regarding same topic, in unable solve mine using them.

please me out! in advance!

your recent_list null , referencing outside oncreateview inside recentscardfragment, why nullpointerexception happenning. move recent_list declaration oncreateview method, this:

public class recentscardfragment extends fragment implements swiperefreshlayout.onrefreshlistener {    listview  recentslist;      private swiperefreshlayout refreshbooks;       arraylist<hashmap<string,string>> items = new arraylist<>();      //private  progressdialog progress;      public static recentscardfragment newinstance() {         recentscardfragment f = new recentscardfragment();             return f;         }      @override     public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) {         view rootview = inflater.inflate(r.layout.recents_card,container,false);         recentslist = (listview)rootview.findviewbyid(r.id.recents_list);         viewcompat.setelevation(rootview,50);         refreshbooks = (swiperefreshlayout) rootview.findviewbyid(r.id.container);         refreshbooks.setonrefreshlistener(this);           getbooks();           recentsadapter  adapter = new recentsadapter(getactivity().getapplicationcontext(), items);          recentslist.setadapter(adapter);           return rootview;     } 

Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -