android menuItem.setIcon 每次都不工作

标签 android android-fragments android-menu

我在 fragment A 中有 menuItem,menuItem.setIcon 第一次工作正常,但是当我添加 fragment B(而不是替换)并返回到 fragment A 时,menuItem.setIcon 不再工作了!

这是我在 fragment A 上的代码,在我添加 fragment B 并返回到 fragment A 之前,buttonClicked 方法运行良好

private MenuItem menuItem;

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.menu_main, menu);
    menuItem = menu.findItem(R.id.action_item);
    super.onCreateOptionsMenu(menu, inflater);
}


public void buttonClicked() {
    if (condition)
        menuItem.setIcon(getResources().getDrawable(R.drawable.ic_action));
    else
        menuItem.setIcon(getResources().getDrawable(R.drawable.ic_action_checked));
}

最佳答案

你需要调用 Activity.invalidateOptionsMenu();进行任何菜单更改。

关于android menuItem.setIcon 每次都不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45930610/

相关文章:

Android Studio - 无法选择声明

java - FragmentTransaction 类型中的方法 add(int, Fragment) 不适用于参数 (int, WeatherFragment)

android - ActionBar 上的共享按钮出现两次

android - 为什么可检查的菜单项不显示复选框

android - 工具栏,onCreateOptionsMenu() 返回 false, 'up' 导航不工作

android - TextWatcher 使 Edittext 中的输入速度变慢(Android)

android - 更改可见性后 ViewPager 无法滑动

java - 如何在android中使用SmsManager将图像文件附加到短信?

android - 为什么在 Xcode 6 中编译 C 库时会发生函数 'usleep' 的隐式声明在 C99 中无效?

java - Android if else 声明关于布局的 Activity 调用