更改操作栏图标

新手上路,请多包涵

我目前正在为我的应用程序实现主题支持,其中一部分是更改操作栏应用程序图标。选择 Holo Light 时,我想使用深色图标。除了设置操作栏应用程序图标的部分外,所有内容都在该方法中完成。我尝试使用的代码是:

 getActionBar();
ActionBar.setIcon(R.drawable.my_icon);

“这里没有这样的参考”是我得到的错误。这应该如何正确完成?

顺便说一句,我的 minSdkVersion14 所以没有动作条 Sherlock 的东西。

原文由 SweSnow 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 387
2 个回答
getActionBar();

您正在将操作栏扔掉。 getActionBar() 返回 ActionBar 的实例,然后你需要调用 setIcon() 。像这样:

 ActionBar actionBar = getActionBar();
actionBar.setIcon(R.drawable.my_icon);

原文由 Kevin Coppock 发布,翻译遵循 CC BY-SA 3.0 许可协议

虽然它的答案有点晚,但我认为它可能有用。

从活动内部: 对于 API 级别 14 或更高级别:

 getActionBar().setIcon(R.drawable.my_icon);

对于较低的 API 级别,我们必须扩展 ActionBarActivity 然后:

 getSupportActionBar().setIcon(R.drawable.my_icon);

从片段内部: 对于 API 级别 14 或更高级别:

 getActivity().getActionBar().setIcon(R.drawable.my_icon);

对于较低的 API 级别,我们可以使用(活动必须扩展 ActionBarActivity):

 ((ActionBarActivity)getActivity()).getSupportActionBar().setIcon(R.drawable.my_icon);

在这两种情况下,我们都必须在设置图标或徽标之前调用 setDisplayShowHomeEnabled(true)。

 ((ActionBarActivity)getActivity()).getSupportActionBar().setDisplayShowHomeEnabled(true);

((ActionBarActivity)getActivity()).getSupportActionBar().setIcon(R.drawable.my_icon);

原文由 Reaz Murshed 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题