我目前正在为我的应用程序实现主题支持,其中一部分是更改操作栏应用程序图标。选择Holo Light时,我想使用黑色图标。除了设置操作栏应用程序图标的部分外,一切都在方法中完成。我正在尝试使用的代码是:
getActionBar();
ActionBar.setIcon(R.drawable.my_icon);
“这里没有这样的参考”是我得到的错误。该如何正确完成?
顺便说一句,minSdkVersion
14
是{{1}},所以Sherlock没有采取行动。
答案 0 :(得分:19)
getActionBar();
你正在把动作栏扔到那里。 getActionBar()
会返回ActionBar
的实例,然后您需要在其上调用setIcon()
。像这样:
ActionBar actionBar = getActionBar();
actionBar.setIcon(R.drawable.my_icon);
答案 1 :(得分:6)
虽然它的答案有点迟,但我认为它可能有用。
来自活动内部 对于API级别14或更高级别:
mentor
对于较低的API级别,我们必须扩展ActionBarActivity,然后:
getActionBar().setIcon(R.drawable.my_icon);
从片段内部开始: 对于API级别14或更高级别:
getSupportActionBar().setIcon(R.drawable.my_icon);
对于较低的API级别,我们可以使用(活动必须扩展ActionBarActivity):
getActivity().getActionBar().setIcon(R.drawable.my_icon);
在这两种情况下,我们必须在设置图标或徽标之前调用setDisplayShowHomeEnabled(true)。
((ActionBarActivity)getActivity()).getSupportActionBar().setIcon(R.drawable.my_icon);
答案 2 :(得分:0)
您需要将要引用的drawable添加到drawable/
下的res/
文件夹中。
编辑:在您的Android安装文件夹中,有很多库存图片可供使用。你可以在那里找到它。
答案 3 :(得分:0)
现有答案非常正确。然而,还有另一种选择。
最小的方法是使用
getActionBar().setIcon(R.drawable.my_icon);
让你的工作马上完成。 :)
技术细节:由于getActionBar()默认返回一个对象,因此您可以直接操作它,而无需在显式范围内的对象中接收它。
答案 4 :(得分:0)
致电setIcon
对我来说还不够。
在此之前,我必须将显示从活动徽标切换到活动图标:
actionBar.setDisplayUseLogoEnabled(false);
有关活动图标和徽标之间的差异,请参阅Android icon vs logo。
答案 5 :(得分:0)
我使用它是为了我的使用,它为我工作。希望这有助于所有
Exception
答案 6 :(得分:0)
试试这个
setSupportActionBar(toolbar);
if (getSupportActionBar() != null)
getSupportActionBar().setIcon(R.drawable.your_icon);