昨天,我发现了一个很棒的库,该库使我可以在操作栏的左上角具有一个“facebook菜单”,该按钮在按下时将在左侧的菜单项中滑动。

问题是我也希望利用ActionBarSherlock库来确保我的应用程序与操作栏向后兼容。使用库I时,除其他外,需要像这样重写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设为最终。我删除了它,并尝试再次覆盖它,只是发现该产品是,每当我按下按钮时都没有任何 react 。没事

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

最佳答案

事实证明,在使用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);
    }
}

关于android - 从SherlockFragmentActivity覆盖onOptionsItemSelected,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10909358/

10-09 15:41