【发布时间】:2020-01-29 21:22:56
【问题描述】:
编辑:已解决,我在答案中详细说明了解决方案。
我可能遗漏了一些简单的东西,我认为解决方案会很简单,但我找不到。
我的问题是我想动态更改菜单项的文本(显示在导航抽屉中),但是当我尝试使用 findItem(R.id.item1) 时,我得到一个空值。
这是我尝试更改文本的代码:
// call invalidateOptionsMenu(); to refresh
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
menu.findItem(R.id.item1).setTitle("Some random text");
return super.onPrepareOptionsMenu(menu);
}
还有我的菜单:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group
android:id="@+id/group_users"
android:checkableBehavior="single">
<item
android:id="@+id/item1"
android:icon="@drawable/util_bleu_24dp"
android:title="@string/item1"/>
<item
android:id="@+id/item2"
android:icon="@drawable/util_rose_24dp"
android:title="@string/item2"/>
</group>
当我尝试执行它时,我得到了错误:
java.lang.NullPointerException: Attempt to invoke interface method 'android.view.MenuItem android.view.MenuItem.setTitle(java.lang.CharSequence)' on a null object reference
有人可以帮我找出问题所在吗?
【问题讨论】:
-
你可以试试这个解决方案,希望它对你有用。 stackoverflow.com/questions/7066657/…
-
是的,我在研究期间看到了这篇文章,它启发了我编写代码,但他们没有谈论我的问题。还是谢谢
-
您是否尝试将此 android:enabled="true" 添加到您的项目中?
-
嗯,我在你给我的链接中找不到它,我根据你的评论尝试了,只是在我的 xml 菜单项中添加了“android:enabled=true”,但它没有改变任何东西