当前位置: 首页>>操作系统>>正文


从SherlockFragmentActivity覆盖onOptionsItemSelected

好望角 操作系统 , 去评论

问题描述

昨天,我找到了一个很好的 Library ,让我有一个”facebook menu”,一个按钮在左上方的按钮,按下它将从左边的菜单中滑动。

问题是我希望使用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);
    }
}

现在我进了 Library ,看到开发人员已经做了onOptionsItemSelected final。我删除它,并尝试覆盖它,只是发现,产品是,当我按按钮没有任何反应。什么都没有。

关于如何使用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);
    }
}

次佳解决方案

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

参考文献

注:本文内容整合自google/baidu/bing辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:gxnotes#qq.com(#替换为@)。

本文由《共享笔记》整理, 博文地址: https://gxnotes.com/article/192139.html,未经允许,请勿转载。
Go