我有一个ActionBarSherlock,我的栏中有一个菜单项。当我打电话的时候
活动按钮View item = findViewById(R.id.my_item);
中的onClick
都可以正常工作。
但是,当我尝试在onCreate
或onResume
或甚至onPostResume
中执行此操作时,始终为null
。我在尝试从资源中提取菜单后尝试在onCreateOptionsMenu(Menu menu)
中执行此操作,但没有任何成功。
因此,我无法理解动作栏项目何时创建以及如何抓住这一时刻?
答案 0 :(得分:2)
答案 1 :(得分:1)
实际上可以获取操作项的视图,即使它不是自定义的。
然而,请注意有时候动作项会出现在溢出菜单中,所以你可能会得到一个null。
所以,你怎么能这样做?
这是一个示例代码:
public boolean onCreateOptionsMenu(final Menu menu) {
getSupportMenuInflater().inflate(R.menu.main, menu);
new Handler().post(new Runnable() {
@Override
public void run() {
final View syncItemView = findViewById(R.id.action_search);
...
在Android 4.1.2和android 2.3.5上使用actionBarSherlock库时进行了测试。
另一种方法是使用更广泛的方式,在showcaseView library,here上使用。
答案 2 :(得分:0)
首先获得如下菜单参考:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.custom_menu, menu);
customMenu = menu;
return super.onCreateOptionsMenu(menu);
}
之后,您可以获得所需的项目,如下所示
customMenu.getItem(0);