android - NullPointerException, setting adapter on null object -


this question has answer here:

i'm trying staggered grid layout using recyclerview in 1 of viewpagers fragments. when start app, crashes , throws error:

caused by: java.lang.nullpointerexception: attempt invoke virtual method 'void android.support.v7.widget.recyclerview.setadapter(android.support.v7.widget.recyclerview$adapter)' on null object reference @ xxx.homeactivity.oncreate(homeactivity.java:39) @ android.app.activity.performcreate(activity.java:5990) @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1106) @ android.app.activitythread.performlaunchactivity(activitythread.java:2278)

my first thought might caused order in views loaded i'm not sure. have viewpager 2 fragments. have recyclerview declared in first fragments xml, so:

res/layout/fragment_home.xml:

<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"             android:layout_width="match_parent"             android:layout_height="match_parent" >      <android.support.v7.widget.recyclerview         android:id="@+id/home_grid"         android:layout_width="match_parent"         android:layout_height="match_parent" />  </relativelayout> 

heres relative parts of activity:

@override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_home);     butterknife.bind(this);      setuptoolbar();     setuptabs();      homegridadapter adapter = new homegridadapter(contacts.createfakecontacts(20));      recyclerview recyclerview = (recyclerview) findviewbyid(r.id.home_grid);      recyclerview.setadapter(adapter);     recyclerview.setlayoutmanager(new staggeredgridlayoutmanager(2, staggeredgridlayoutmanager.vertical));   } 

here first fragments java file:

public class homefragment extends fragment {  public static final string arg_page = "arg_page";  private int mpage;  public static homefragment newinstance(int page) {     bundle args = new bundle();     args.putint(arg_page, page);     homefragment fragment = new homefragment();     fragment.setarguments(args);     return fragment; }  @override public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     mpage = getarguments().getint(arg_page);  }  @override public view oncreateview(layoutinflater inflater, viewgroup container,                          bundle savedinstancestate) {     // inflate layout fragment     return inflater.inflate(r.layout.fragment_home, container, false); }   } 

i dont think need post recyclerviews adapter code dont think part of issue, if needed can.

any input on issue appreciated!

edit: requested, heres activitys xml file:

<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"             xmlns:tools="http://schemas.android.com/tools"             xmlns:app="http://schemas.android.com/apk/res-auto"             android:layout_width="match_parent"             android:layout_height="match_parent"             android:orientation="vertical"             tools:context=".homeactivity">  <android.support.v7.widget.toolbar     android:id="@+id/toolbar"     android:minheight="?attr/actionbarsize"     android:layout_width="match_parent"     android:layout_height="75dp"     style="@style/toolbarstyle"     >      <android.support.design.widget.tablayout         android:id="@+id/tab_layout"         android:layout_width="match_parent"         android:layout_height="match_parent"         app:tabmode="scrollable"/>  </android.support.v7.widget.toolbar>  <android.support.v4.view.viewpager     android:id="@+id/viewpager"     android:layout_width="match_parent"     android:layout_height="0dp"     android:layout_weight="1"/>  </linearlayout> 

you loading activity_home in activity

setcontentview(r.layout.activity_home); 

and home_grid located in first_fragment

<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"         android:layout_width="match_parent"         android:layout_height="match_parent" >  <android.support.v7.widget.recyclerview     android:id="@+id/home_grid"     android:layout_width="match_parent"     android:layout_height="match_parent" />  </relativelayout> 

Comments