MenuItem的findViewById返回null
这是我的ActionBar菜单的xml文件。调用setContentView
MenuItem的findViewById返回null
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/fav_button"
android:title="Favourite"
android:icon="@drawable/unstar"
android:showAsAction="always|withText" />
</menu>
在我onCreate
功能,后。我做favButton = (MenuItem) this.findViewById(R.id.fav_button);
但是这返回null。
但是返回onOptionsItemSelected
函数上的正确对象。
我使用ActionBarSherlock,如果这会有所作为。
我尝试过其他findViewById建议的各种选项,返回空问题,但它们还没有解决我的问题。
代替
favButton = (MenuItem) this.findViewById(R.id.fav_button);
在onCreateOptionsMenu getMenuInflater()膨胀(R.menu.activity_main,菜单)之后。
favButton = menu.findItem(R.id.fav_button);
在onCreate期间没有办法获取它吗?我想能够基于savedInstanceState Bundle setChecked()。或者,有没有更好的方法来保存菜单项的旋转状态? – aij 2015-02-20 22:33:19
我可以在onCreate上做吗? – 2015-11-11 21:18:34
它仍然为空,直到它被选中 – 2015-11-11 21:18:52
使用menu.findItem()来获取菜单。但是这需要在菜单充值后完成。
此外,要回答您的评论,您可以使用onPrepareOptionsMenu来设置菜单的状态。如果这个菜单是一次性更新,你也可以使用onCreateOptionsMenu,它只被调用一次。
http://www.vogella.com/articles/AndroidActionBar/article.html。检查链接。 – Raghunandan 2013-05-11 18:32:34