Android Fragment onResume()在使用FragmentPagerAdapter时获得空指针

Android Fragment onResume()在使用FragmentPagerAdapter时获得空指针,android,android-viewpager,Android,Android Viewpager,我需要我的片段在它们是活动片段时总是调用某个函数。我使用的是viewPager,所以根据 我创建了一个名为FragmentLifecycle.java的接口类: public interface FragmentLifecycle { public void onResumeFragment(); } 我为我的片段实现了这个接口: @Override public void onResumeFragment() { Log.i(TAG, "onResumeFragment(

我需要我的片段在它们是活动片段时总是调用某个函数。我使用的是viewPager,所以根据

我创建了一个名为FragmentLifecycle.java的接口类:

public interface FragmentLifecycle {

public void onResumeFragment();

}
我为我的片段实现了这个接口:

    @Override
public void onResumeFragment() {
    Log.i(TAG, "onResumeFragment() running");
    Toast.makeText(getActivity(), "onResumeFragment():" + TAG, Toast.LENGTH_SHORT).show();
}
在我的活动中:

       vpPager = (ViewPager) findViewById(R.id.vpg_main_content);
    adapterFragment = new PagerAdapterFragment(getSupportFragmentManager());

    vpPager.setAdapter(adapterFragment);


    vpPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        }

        @Override
        public void onPageSelected(int newPosition) {
            Toast.makeText(ProfileActivity.this, "Selected page position: " + newPosition, Toast.LENGTH_SHORT).show();
            if (newPosition == 0) {
                FragmentLifecycle fragmentToHide = (FragmentLifecycle) adapterFragment.getItem(0);
                fragmentToHide.onResumeFragment();
            }

        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });
}
我的片段适配器:

    @Override
public Fragment getItem(int position) {
    switch (position) {
        case 0: // Fragment # 0 - This will show FirstFragment
            return ProfileFragment.newInstance(0, "Profile");
        case 1: // Fragment # 0 - This will show FirstFragment different title
            return EditProfileFragment.newInstance(1, "Edit");
        default:
            return null;
    }
}
当我运行我的应用程序时,我得到了空指针:

                                              java.lang.NullPointerException
                                                                                   at android.widget.Toast.<init>(Toast.java:93)
                                                                                   at android.widget.Toast.makeText(Toast.java:241)
                                                                                   at com.example.sayres.myapplication7.mvp.view.profile.ProfileFragment.onResumeFragment(ProfileFragment.java:117)
                                                                                   at com.example.sayres.myapplication7.mvp.view.profile.ProfileActivity$1.onPageSelected(ProfileActivity.java:56)
                                                                                   at android.support.v4.view.ViewPager.dispatchOnPageSelected(ViewPager.java:1862)
                                                                                   at android.support.v4.view.ViewPager.scrollToItem(ViewPager.java:625)
                                                                                   at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:609)
                                                                                   at android.support.v4.view.ViewPager.onTouchEvent(ViewPager.java:2176)
                                                                                   at android.view.View.dispatchTouchEvent(View.java:7706)
                                                                                   at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2210)
                                                                                   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1945)
                                                                                   at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
                                                                                   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
                                                                                   at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
                                                                                   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
                                                                                   at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
                                                                                   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
                                                                                   at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
                                                                                   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
                                                                                   at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2068)
                                                                                   at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1515)
                                                                                   at android.app.Activity.dispatchTouchEvent(Activity.java:2458)
                                                                                   at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2016)
                                                                                   at android.view.View.dispatchPointerEvent(View.java:7886)
                                                                                   at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:3947)
                                                                                   at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3826)
                                                                                   at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
                                                                                   at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
                                                                                   at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
                                                                                   at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3518)
                                                                                   at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3419)
                                                                                   at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3575)
                                                                                   at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
                                                                                   at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
                                                                                   at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
                                                                                   at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3419)
                                                                                   at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
                                                                                   at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5532)
                                                                                   at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5512)
                                                                                   at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5483)
                                                                                   at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5612)
                                                                                   at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
                                                                                   at android.os.MessageQueue.nativePollOnce(Native Method)
                                                                                   at android.os.MessageQueue.next(MessageQueue.java:138)
                                                                                   at android.os.Looper.loop(Looper.java:123)
                                                                                   at android.app.ActivityThread.main(ActivityThread.java:5001)
                                                                                   at java.lang.reflect.Method.invokeNative(Native Method)
                                                                                   at java.lang.reflect.Method.invoke(Method.java:515)
                                                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
                                                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
                                                                                   at dalvik.system.NativeStart.main(Native Method)
java.lang.NullPointerException
在android.widget.Toast.(Toast.java:93)
位于android.widget.Toast.makeText(Toast.java:241)
在com.example.sayres.myapplication7.mvp.view.profile.ProfileFragment.onResumeFragment(ProfileFragment.java:117)上
在com.example.sayres.myapplication7.mvp.view.profile.ProfileActivity$1.onPageSelected上(ProfileActivity.java:56)
在android.support.v4.view.ViewPager.dispatchOnPageSelected上(ViewPager.java:1862)
位于android.support.v4.view.ViewPager.scrollToItem(ViewPager.java:625)
位于android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:609)
位于android.support.v4.view.ViewPager.onTouchEvent(ViewPager.java:2176)
在android.view.view.dispatchTouchEvent上(view.java:7706)
在android.view.ViewGroup.DispatchTransformedToucheEvent(ViewGroup.java:2210)中
位于android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1945)
在android.view.ViewGroup.DispatchTransformedToucheEvent(ViewGroup.java:2216)中
位于android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
在android.view.ViewGroup.DispatchTransformedToucheEvent(ViewGroup.java:2216)中
位于android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
在android.view.ViewGroup.DispatchTransformedToucheEvent(ViewGroup.java:2216)中
位于android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
在android.view.ViewGroup.DispatchTransformedToucheEvent(ViewGroup.java:2216)中
位于android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
在com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2068)上
位于com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1515)
位于android.app.Activity.dispatchTouchEvent(Activity.java:2458)
在com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent上(PhoneWindow.java:2016)
位于android.view.view.dispatchPointerEvent(view.java:7886)
位于android.view.ViewRootImpl$viewPostimeiInputStage.processPointerEvent(ViewRootImpl.java:3947)
在android.view.ViewRootImpl$viewPostimeiInputStage.onProcess中(ViewRootImpl.java:3826)
在android.view.ViewRootImpl$InputStage.deliver上(ViewRootImpl.java:3392)
在android.view.ViewRootImpl$InputStage.onDeliverToNext中(ViewRootImpl.java:3442)
在android.view.ViewRootImpl$InputStage.forward中(ViewRootImpl.java:3411)
在android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3518)中
在android.view.ViewRootImpl$InputStage.apply上(ViewRootImpl.java:3419)
在android.view.ViewRootImpl$AsyncInputStage.apply上(ViewRootImpl.java:3575)
在android.view.ViewRootImpl$InputStage.deliver上(ViewRootImpl.java:3392)
在android.view.ViewRootImpl$InputStage.onDeliverToNext中(ViewRootImpl.java:3442)
在
protected Activity mActivity;

@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);
    mActivity = activity;
}
 if (isAdded()) {
    Toast.makeText(mActivity, "onResumeFragment():" + TAG, Toast.LENGTH_SHORT).show();
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    // Your onResumeFragment() code here.
    if (isVisibleToUser) {
        Log.i(TAG, "onResumeFragment() running");
        Toast.makeText(getActivity(), "onResumeFragment():" + TAG, Toast.LENGTH_SHORT).show();
    }
}