在NavigationDrawer

时间:2016-11-13 11:10:59

标签: android android-actionbar navigation-drawer

你好我已经实现了一个我使用导航抽屉的活动。它工作正常但有时app因为actionbar而崩溃。正在抛出nullpointerexception

我按如下方式调用了片段

1 个答案:

答案 0 :(得分:0)

如果getActivity尚未附加到onCreateView,则您无法从null致电Activity,因为它可能会返回Fragment

ActivitiesFragments具有单独的生命周期,getActivity可以在您的片段处于准备阶段时为空。

您可以将依赖getActivity的代码移至Fragment.onActivityCreated(Bundle)回调。 请注意,它是在onCreateView之后调用的。

在此处查看更多信息:https://developer.android.com/guide/components/fragments.html#CoordinatingWithActivity

更新: 根据要求,这是一个固定的代码 - 我只是将你的一些onCreateView方法拆分为onActivityCreated

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    person = new Person();
    str = person.getFragment();
    view = inflater.inflate(R.layout.fragment_product_list, container, false);
    return view;
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    cd = new ConnectionDetector(getActivity());
    parent = (AppCompatActivity) getActivity();
    if (getArguments() != null) {
        title = getArguments().getString("Title");
        if (title != null) {
            parent.getSupportActionBar().setTitle(title);
        }
    }
}