如何更改菜单图标

时间:2014-10-30 16:29:28

标签: android android-fragments menu

我在主要活动中声明了以下菜单:

public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main, menu);

 //... populate with menu.add()

}

菜单图标看起来像3个点,它的位置在右侧的操作栏上。在我的应用程序中,我使用片段,我想要更改菜单图标(按下打开菜单项的图标),具体取决于它在前面的片段。

我如何以编程方式执行此操作?

同样在我的一些片段上,我不希望菜单出现。为此,我在这些片段中使用:

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
{
    super.onCreateOptionsMenu(menu, inflater);
    menu.clear();
}

我试图找到一种方法,使用菜单var来改变菜单的图标。但我找不到办法。

所以....你能告诉我如何以编程方式更改菜单图标吗?

谢谢,

2 个答案:

答案 0 :(得分:0)

看看这个问题:

How to change the Option menu icon in the Action Bar?

试试这个:

<style name="YourTheme" parent="@android:style/Theme.Holo.Light">
     <item name="android:actionOverflowButtonStyle">@style/Widget.ActionButton.Overflow</item>
</style>

<style name="Widget.ActionButton.Overflow" parent="@android:style/Widget.Holo.ActionButton.Overflow">
     <item name="android:src">@android:drawable/ic_menu_moreoverflow_holo_dark</item>
     <item name="android:background">?android:attr/actionBarItemBackground</item>
     <item name="android:contentDescription">@string/action_menu_overflow_description</item>
</style>

<强>更新

以编程方式更改它,请看这个问题: Changing the Android Overflow menu icon programmatically

希望这会对你有所帮助。

答案 1 :(得分:0)

如果我理解正确,你的意思是overflow图标。我就是这样做的:

<!--inside your styles.xml-->
<style name="AppBaseTheme" parent="@android:style/Theme.Holo">
<item name="android:actionOverflowButtonStyle">@style/overflow</item>
</style>

<style name="overflow" parent="@android:style/Widget.Holo.ActionButton.Overflow">
    <item name="android:src">@drawable/custom_overflow</item>
</style>

更新:

以编程方式更改它:Changing the Android Overflow menu icon programmatically