0

I tried to add images along with text in PagerTabStrip but getting error and app is forceclosing. I'm using the instructions as showing in here for PagerTabStrip with ViewPager. In this post, its shown how to add images but its not working and the code is not complete. So, any help would be much appreciated. I'm using PagerTabStrip becuz I want to have my tab starting from center.

LogCat error

01-11 15:15:47.684: E/AndroidRuntime(7583): FATAL EXCEPTION: main
01-11 15:15:47.684: E/AndroidRuntime(7583): Process: in.wptrafficanalyzer.viewpagerdemo, PID: 7583
01-11 15:15:47.684: E/AndroidRuntime(7583): java.lang.NullPointerException
01-11 15:15:47.684: E/AndroidRuntime(7583):  at in.wptrafficanalyzer.viewpagerdemo.MyFragmentPagerAdapter.getPageTitle(MyFragmentPagerAdapter.java:45)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at android.support.v4.view.PagerTitleStrip.updateText(PagerTitleStrip.java:276)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at android.support.v4.view.PagerTitleStrip.updateAdapter(PagerTitleStrip.java:321)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at android.support.v4.view.PagerTitleStrip.onAttachedToWindow(PagerTitleStrip.java:252)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at android.view.View.dispatchAttachedToWindow(View.java:12851)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2579)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2586)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2586)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2586)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2586)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2586)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1427)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1192)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6231)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:816)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at android.view.Choreographer.doCallbacks(Choreographer.java:619)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at android.view.Choreographer.doFrame(Choreographer.java:588)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:802)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at android.os.Handler.handleCallback(Handler.java:808)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at android.os.Handler.dispatchMessage(Handler.java:103)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at android.os.Looper.loop(Looper.java:193)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at android.app.ActivityThread.main(ActivityThread.java:5388)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at java.lang.reflect.Method.invokeNative(Native Method)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at java.lang.reflect.Method.invoke(Method.java:515)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:655)
01-11 15:15:47.684: E/AndroidRuntime(7583):  at dalvik.system.NativeStart.main(Native Method)
Adapter

package in.wptrafficanalyzer.viewpagerdemo;

import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.style.ImageSpan;

public class MyFragmentPagerAdapter extends FragmentPagerAdapter{
 
 final int PAGE_COUNT = 3;
 Drawable myDrawable;

 /** Constructor of the class */
 public MyFragmentPagerAdapter(FragmentManager fm) {
  super(fm);
 }

 /** This method will be invoked when a page is requested to create */
 @Override
 public Fragment getItem(int arg0) {
  
  MyFragment myFragment = new MyFragment();
  Bundle data = new Bundle();
  data.putInt("current_page", arg0+1);
  myFragment.setArguments(data);
  return myFragment;
 }

 /** Returns the number of pages */
 @Override
 public int getCount() {  
  return PAGE_COUNT;
 }
 
 @Override
 public CharSequence getPageTitle(int position) {  
  //return "Page #" + ( position + 1 );
  
  SpannableStringBuilder sb = new SpannableStringBuilder(" Page #"+ position); // space added before text for convenience

     myDrawable.setBounds(0, 0, myDrawable.getIntrinsicWidth(), myDrawable.getIntrinsicHeight()); 
     ImageSpan span = new ImageSpan(myDrawable, ImageSpan.ALIGN_BASELINE); 
     sb.setSpan(span, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 

     return sb;
 }
 
 
 
 
}
Community
  • 1
  • 1
Sammy
  • 181
  • 3
  • 18
  • Please check the line number 45 of your adapter something is not declare in on-create() and use this directly so got null-pointer. please paste code with line number. – InsaneCat Jan 11 '16 at 10:15
  • Line 45 is the second last curly braces. So I think it might be pointing to line: return sb; ?? – Sammy Jan 11 '16 at 10:24

0 Answers0