小编Ser*_*nko的帖子

MenuItem.setIcon()方法不起作用

我已经尝试了所有可能的解决方案。这是我的代码:

private Menu mMenu;

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.fragment_article_detail_menu, menu);
    mMenu = menu;
}

void changeStar(boolean added) {
    if (mMenu != null) {
        MenuItem item = mMenu.findItem(R.id.favourites_item);
        if (added) {
            Log.d(LOG_TAG, "Set full icon");
            item.setIcon(getResources().getDrawable(R.drawable.star_full));
        } else {
            Log.d(LOG_TAG, "Set empty icon");
            item.setIcon(getResources().getDrawable(R.drawable.star_empty));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的菜单xml文件:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="ssidit.pp.ua.payspacereader.ArticleDetailActivity">
    <item
        android:id="@+id/refresh_item"
        android:title="@string/refresh"
        app:showAsAction="never"></item>

    <item
        android:id="@+id/favourites_item"
        android:icon="@drawable/star_empty"
        android:title="@string/add_to_favourite"
        app:showAsAction="ifRoom"></item>

    <item
        android:id="@+id/share_item"
        android:icon="@drawable/ic_share"
        android:title="@string/share"
        app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
        app:showAsAction="ifRoom"></item>
</menu>
Run Code Online (Sandbox Code Playgroud)

invalidateMenu()方法无济于事。当我调用setIcon方法时,我的android设备上没有任何变化。

这是我的代码:

private boolean isFavourite;

 private void setValues(Cursor …
Run Code Online (Sandbox Code Playgroud)

icons android menu menuitem

5
推荐指数
1
解决办法
2582
查看次数

标签 统计

android ×1

icons ×1

menu ×1

menuitem ×1