你好我已经实现了一个我使用导航抽屉的活动。它工作正常但有时app因为actionbar而崩溃。正在抛出nullpointerexception
我按如下方式调用了片段
答案 0 :(得分:0)
如果getActivity
尚未附加到onCreateView
,则您无法从null
致电Activity
,因为它可能会返回Fragment
。
Activities
和Fragments
具有单独的生命周期,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);
}
}
}