22

昨天,我发现了一个很棒的库,它允许我有一个“facebook 菜单”,在操作栏的左上角有一个按钮,当按下该按钮时,它会从左侧滑入一个项目菜单。

问题是我还希望使用 ActionBarSherlock 库来确保我的应用程序与操作栏向后兼容。使用库时,我需要像这样覆盖 onOptionsItemSelected :

@Override
public boolean onOptionsItemSelected(MenuItem item) 
{
    int id = item.getItemId();

    if (id == android.R.id.home) {

        rbmView.toggleMenu();

        return true;

    } else {
        return super.onOptionsItemSelected(item);
    }
}

现在我进入图书馆,看到开发人员已经制作了 onOptionsItemSelected final。我删除了它并再次尝试覆盖它,却发现产品是每当我按下按钮时都没有任何反应。什么都没有。

关于如何将 darvds_ribbonmenu 库与 actionbarsherlock 一起使用的任何想法?

4

2 回答 2

50

事实证明,在使用 ABS 时,您需要指定 MenuItem 的命名空间,以确保您覆盖了正确的方法。我的解决方案如下:

@Override
public boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item) 
{
    int id = item.getItemId();
    Log.d("item ID : ", "onOptionsItemSelected Item ID" + id);
    if (id == android.R.id.home) {
        rbmView.toggleMenu();

        return true;

    } else {
        return super.onOptionsItemSelected(item);
    }
}
于 2012-06-06T08:00:33.593 回答
17

更改import android.view.MenuItem;import com.actionbarsherlock.view.MenuItem;。否则,您使用的只是MenuItem与您正在导入的完全不同的。

于 2012-10-31T05:52:38.647 回答