我正在使用模板创建的NavigationDrawer(启动新项目时)。 我正在尝试获得Material Design兼容性,因此我正在使用AppCompat v7。 我跟着these instructions设置工具栏作为我的ActionBar(即在我的工具栏上使用setSupportActionBar),然后在我的NavigationDrawerFragment中获取一个NPE(在onCreateView内)
mDrawerListView.setAdapter(new ArrayAdapter<String>(
getActionBar().getThemedContext(),
android.R.layout.simple_list_item_activated_1,
android.R.id.text1, ...
现在我怀疑问题在于片段内的getActionBar()方法:
private ActionBar getActionBar() {
return ((ActionBarActivity) getActivity()).getSupportActionBar();
}
但我不知道为什么 - 我在调用了onGreate的onSupe上调用setUp()之前调用了setSupportActionBar(工具栏)...
如果有人知道为什么会这样,请帮忙!
答案 0 :(得分:6)
似乎问题是在活动的onCreate之前调用了片段的onCreateView,因此没有设置ActionBar。我只是将有问题的代码移动到片段的onActivityCreated中,它就像一个魅力。
答案 1 :(得分:4)
只需将getActionBar().getThemedContext()
替换为getActivity()