【问题标题】:Adding items to action bar (using ActionBarSherlock)将项目添加到操作栏(使用 ActionBarSherlock)
【发布时间】:2013-09-26 20:41:50
【问题描述】:

我在我的项目中使用 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);
    }
}

在这种情况下,我添加了一个刷新按钮,女巫在 main.xml 中是孤独的

但是我想在 CupomDetalheActivity 上做同样的事情(尽管添加了一个分享按钮),女巫扩展了 SherlockFragmentActivity。所以我无法覆盖“onCreateOptionsMenu”,因为它有不同的签名(如下):

//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.
}

使用 SherlockFragmentActivity,我什至看不到在哪里可以使用充气机来调出包含共享按钮的 xml... 我非常感谢任何想法和建议...

[编辑] 根据 DroidT 的建议,这很有效:

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

【问题讨论】:

    标签: android android-actionbar actionbarsherlock


    【解决方案1】:

    您的 SherlockFragmentActivity 也有一个 onCreateOptionsMenu()onPrepareOptionsMenu()。您可以使用getSupportMenuInflater()onCreateOptionsMenu() 中扩展您的菜单选项。每当您希望更改发生时,您都需要在 SherlockFragmentActivity 中调用invalidateOptionsMenu(),并在onPrepareOptionsMenu() 中添加菜单选项。有关详细信息,请查看 this 链接的“在运行时更改菜单项”部分。

    【讨论】:

      【解决方案2】:

      如果您在片段内使用菜单,请确保在片段onCreate(Bundle savedInstance) 方法中调用setHasOptionsMenu(true);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多