码迷,mamicode.com
首页 > 移动开发 > 详细

NullPointerException android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState

时间:2015-01-30 16:07:47      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:android开发   debug   

技术分享

fragment 加 viewpager做tab的时候容易出这个空指针异常,看源码:

if (f.mSavedViewState != null) {
    if (result == null) {
        result = new Bundle();
    }
    result.putSparseParcelableArray(
            FragmentManagerImpl.VIEW_STATE_TAG, f.mSavedViewState);
}
if (!f.mUserVisibleHint) {
    if (result == null) {
        result = new Bundle();
    }
    // Only add this if it's not the default value
    result.putBoolean(FragmentManagerImpl.USER_VISIBLE_HINT_TAG, f.mUserVisibleHint);
}

不保存状态会进入第二个if抛空指针异常。

在fragment中加入如下代码,bug可解:

@Override 
public void onSaveInstanceState(Bundle outState) 
{
//first saving my state, so the bundle wont be empty.
outState.putString("KEY",  "WBUG_VALUE");
super.onSaveInstanceState(outState);
}

或者:

class MyFragment extends Fragment {

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        setUserVisibleHint(true);
    }
或者使用FragmentStatePagerAdapter替代 FragmentPageAdapter。

NullPointerException android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState

标签:android开发   debug   

原文地址:http://blog.csdn.net/jijiaxin1989/article/details/43305001

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!