我需要得到一个参考资料 MenuItem
的相应 View
橆 自定. 使用 findViewById()
ID的菜单项返回null,当从 Activity#onCreate()
或 onCreateOptionsMenu()
. 然而,正如一些人所言 答案 对其他问题指出: findViewById()
是否 调用时返回视图 onOptionsItemSelected()
或从发布在 Activity#onCreate()
,像这样...
new Handler().post(new Runnable() {
@Override
public void run() {
findViewById(R.id.some_view);
}
});
所以,似乎在某些时候,安卓系统把。Menu
您在 onCreateOptionsMenu()
并创建相应的 View
的,在屏幕上显示。A Runnable
发自 onCreate()
发生 以期在发生这种情况后被运行。但是,它感觉如此黑客假设将永远是这样的情况,而不是真正听某种类型的 menuViewsCreated()
事件。
所以,这就引出了我的问题- 是否 安卓系统提供了一个事件,告诉开发者,菜单 View
已经创建了?
虽然晚了点,但可能会对其他人有所帮助,你必须使用...。new Handler()
在 onCreateOptionsMenu(Menu menu)
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.section, menu);
new Handler().post(new Runnable() {
@Override
public void run() {
final View menuItemView = findViewById(R.id.menu_item);
//TODO
}
});
return true;
}