当前位置: 首页 > 知识库问答 >
问题:

向动作栏添加项目(使用ActionBarSherlock)

柴英博
2023-03-14

我在我的项目中使用ActionBarSherlock,有时需要在操作栏中添加一个或多个项。

在这个BaixadosFragment类(扩展了SherlockFragment)中,我使用了以下代码,它运行良好:

@Override
public void onCreateOptionsMenu(Menu menu,MenuInflater inflater)
{
    inflater.inflate(R.menu.main, menu);
    super.onCreateOptionsMenu(menu, inflater);
}

public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.refresh:
            refresh();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}
//this is inside SherlockFragmentActivity
public final boolean onCreateOptionsMenu(android.view.Menu menu) {
    return true;
}
//this is inside SherlockFragment
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    //Nothing to see here.
}

[编辑]根据Droidt的建议,这奏效了:

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.share, menu);
    super.onCreateOptionsMenu(menu);
    return true;
}

共有1个答案

郗鹏
2023-03-14

SherlockFragmentActivity还有一个oncreateOptionsMenu()onprepareOptionsMenu()。您可以使用getSupportMenuInflater()oncreateOptionsMenu()中扩展菜单选项。当您希望更改发生并在onprepareOptionsMenu()添加菜单选项时,您需要调用SherlockFragmentActivity中的InvalidateOptionsMenu()。有关更多信息,请参见此链接的“在运行时更改菜单项”部分。

 类似资料:
  • 在我的activity_main.xml我有这个工具栏: 在清单中有

  • 我在Java的早期版本中使用了Maven,但现在我正试图让它在Java 10中工作。我构建了一个简单的Hello world项目,具体来说: 公共课堂测试{ }使用模块信息类: 模块maven.test{导出main;} 与本项目相关的pom为: http://maven.apache.org/xsd/maven-4.0.0.xsd" 当我构建项目时,它成功构建。然后,我从Maven中央存储库添加

  • 我正在尝试将Jsoup库添加到我的项目中,但是我在程序中得到一个错误,说“无法解析符号'Jsoup'”。下面是我所做的,但不起作用。

  • 我正在尝试为我的netbeans平台项目(我正在启动)的一个模块创建一个模拟菜单。 我想在“文件”中创建一个新条目“new”,该条目将包含“new Project”和“new Module”。 在重要文件中- 然后我添加了两个空文件,“New Project”和“New Module”,但它们没有显示出来。 这是图层。xml: 我已经多次删除和创建这些文件,因此有后缀。我唯一添加的是位置。 我想我

  • 问题内容: 大家好。我正在制作一个词汇应用程序,需要在其中创建一个 (或ArrayList)。为此,我创建了以下代码(仅作为示例): 我还尝试了以下方法: 他们两个都将该项目添加到列表中,但是在调试时,我发现它的数组有12个对象,如下所示: 我的问题是我不能拥有这些空项目,因为此新列表是上的键,因此任何更改都将导致异常,因为该键将不存在。 使用调试器的列表(tempSOLUTION)详细信息的屏幕