在片段导航抽屉中。我在 getActionBar 中遇到错误。我能知道错误的原因和错误吗
Posted
技术标签:
【中文标题】在片段导航抽屉中。我在 getActionBar 中遇到错误。我能知道错误的原因和错误吗【英文标题】:In Fragment Navigation Drawer. I am getting error in getActionBar.Can I know why and what is the error 【发布时间】:2014-08-08 07:14:15 【问题描述】:/** 抽屉关闭时调用 */
public void onDrawerClosed(View view)
getActionBar().setTitle(mTitle);
invalidateOptionsMenu();
/** 抽屉打开时调用 */
public void onDrawerOpened(View drawerView)
getActionBar().setTitle("Select a river");
invalidateOptionsMenu();
;
// 在 DrawerLayout 上设置 DrawerToggle
mDrawerLayout.setDrawerListener(mDrawerToggle);
// 创建一个 ArrayAdapter 将项目添加到列表视图 mDrawerList
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
getBaseContext(),
R.layout.drawer_list_item ,
getResources().getStringArray(R.array.rivers)
);
//在mDrawerList上设置适配器
mDrawerList.setAdapter(adapter);
// 启用主页按钮
getActionBar().setHomeButtonEnabled(true);
// 启用向上导航
getActionBar().setDisplayHomeAsUpEnabled(true);
【问题讨论】:
你能发布 logcat 输出吗?确切的错误是什么? 你确定你是从 Fragment 调用这个吗?片段没有方法getActionBar();
Read this.
在 android Maninfest 文件中,如果我更改 min sdk 版本 14 意味着我得到了输出。但我使用 min sdk 版本 8 意味着我没有收到错误。
【参考方案1】:
尝试使用getSupportActionBar()
而不是getActionBar()
。
【讨论】:
如果我使用 getSupportActionBar 意味着我收到错误,我可以获得完整的代码 GunaSeelan。 你在使用appcompat
库吗?
我可以知道你在哪里打电话,MainActivity
或NavigationDrawerFragment
?
好的,如果你使用getSupportActionBar
意味着你得到了什么错误?
错误是:方法 getSupportActionBar() 未定义类型 new ActionBarDrawerToggle()【参考方案2】:
Fragment 没有方法 getActionBar()。 片段通常用作活动用户界面的一部分,并为活动贡献自己的布局。要为片段提供布局,您必须实现 onCreateView() 回调方法,Android 系统会在片段绘制其布局时调用该方法。 因此,fragment 需要它所在的活动。
所以,试试 getActivity().getActionBar();
【讨论】:
以上是关于在片段导航抽屉中。我在 getActionBar 中遇到错误。我能知道错误的原因和错误吗的主要内容,如果未能解决你的问题,请参考以下文章