2

我的栏中有一个带有一个菜单项的 ActionBarSherlock。当我调用 View item = findViewById(R.id.my_item);活动的按钮时,onClick一切都按预期工作。但是,当我尝试在其中或什至在其中执行此操作时onCreateonResumeonPostResume总是null. 在从资源中扩充我的菜单后,我也尝试过这样做onCreateOptionsMenu(Menu menu),但没有任何成功。

因此,我无法理解何时创建操作栏项目以及如何捕捉这一刻?

4

3 回答 3

2

正如这里这里所说的,getActionView返回我们设置的视图setActionView因此,这里描述的唯一一种自定义操作栏菜单项的方法

于 2013-02-14T06:37:19.083 回答
1

实际上,即使没有自定义,也可以获得操作项的视图。

但是,请注意,有时操作项会位于溢出菜单内,因此您可能会得到一个空值。

那么,你怎么能做到呢?

这是一个示例代码:

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 库上使用,here

于 2013-08-25T09:21:48.970 回答
0

首先得到一个菜单参考如下:

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
     getMenuInflater().inflate(R.menu.custom_menu, menu);
     customMenu = menu;
     return super.onCreateOptionsMenu(menu);
 }

之后你可以得到你需要的项目如下

     customMenu.getItem(0);
于 2016-09-10T23:45:53.217 回答