I try to use viewPager with the tablayout but when i set adapter with the view pager i'm getting error "java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass() on a null object reference" i don't understand why this error is show.
view pager set Adapter:
viewPager= (ViewPager) findViewById(R.id.viewPager_id); viewPager.setAdapter(newViewPagerAdapterUseThisClass(getSupportFragmentManager(),14));
Adapter clss:
class ViewPagerAdapterUseThisClass extends FragmentPagerAdapter { int countTabItem; ViewPagerAdapterUseThisClass(FragmentManager fm,int contTabItem) { super(fm); this.countTabItem=contTabItem; } @Override public Fragment getItem(int position) { if(position==0){ EnthusamTab enthusamTab=new EnthusamTab(); return enthusamTab; } return null; } @Override public int getCount() { return countTabItem; } }
view pager xml file:
<android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/tab_layout_id" android:id="@+id/viewPager_id"/>
Error log:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference at android.support.v4.app.BackStackRecord.doAddOp(BackStackRecord.java:380) at android.support.v4.app.BackStackRecord.add(BackStackRecord.java:375) at android.support.v4.app.FragmentPagerAdapter.instantiateItem(FragmentPagerAdapter.java:103) at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:1034) at android.support.v4.view.ViewPager.populate(ViewPager.java:1248) at android.support.v4.view.ViewPager.populate(ViewPager.java:1116) at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1642) at android.view.View.measure(View.java:19861) at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715) at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461) at android.view.View.measure(View.java:19861) at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:1081) at android.view.View.measure(View.java:19861) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083) at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139) at android.view.View.measure(View.java:19861) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464) at android.widget.LinearLayout.measureVertical(LinearLayout.java:758) at android.widget.LinearLayout.onMeasure(LinearLayout.java:640) at android.view.View.measure(View.java:19861) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083) at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) at android.view.View.measure(View.java:19861) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464) at android.widget.LinearLayout.measureVertical(LinearLayout.java:758) at android.widget.LinearLayout.onMeasure(LinearLayout.java:640) at android.view.View.measure(View.java:19861) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083) at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) at com.android.internal.policy.DecorView.onMeasure(DecorView.java:689) at android.view.View.measure(View.java:19861) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2275) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1366) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1619) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6343) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:874) at android.view.Choreographer.doCallbacks(Choreographer.java:686) at android.view.Choreographer.doFrame(Choreographer.java:621) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6126) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Java Object getClass() Method. getClass() is the method of Object class. This method returns the runtime class of this object. The class object which is returned is the object that is locked by static synchronized method of the represented class. Syntax
The Java Object getClass () method returns the class name of the object. The syntax of the getClass () method is: The getClass () method does not take any parameters. In the above example, we have used the getClass () method to get the name of the class. Here, we are able to call the getClass () method using the String and ArrayList object.
java.lang.Object public class Object Class Objectis the root of the class hierarchy. Every class has Objectas a superclass. All objects, including arrays, implement the methods of this class. Since: 1.0 See Also: Class Constructor Summary Constructors Constructor Description Object() Constructs a new object. Method Summary
Here, we are able to call the getClass () method using the String and ArrayList object. It is because String and ArrayList inherit the Object class. Here, we have created a class named Main. Note that we have called the getClass () method using the method of Main. It is possible because Object class is the superclass of all the classes in Java.
This exception occurs when you return null
at getItem(int position)
method of PagerAdapter
.
You have to set a return value(n) at getCount()
method and return a Fragment
at getItem(int position)
method for all (0 .. n-1) positions.
For instance, if you return 3 from getCount()
method, then you must return a not-null Fragment
for positions 0, 1 and 2 at getItem(int position)
method. If you return a null for position 0, 1 or 2, you'll get:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference
private static class MyPagerAdapter extends FragmentPagerAdapter { ... @Override public int getCount() { return 3; } @Override public Fragment getItem(int position) { switch (position) { case 0: return new XFragment(); case 1: return new YFragment(); case 2: return new ZFragment(); default: return null; // Problem occurs at this condition! } } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With