java - 安卓 : onOptionsItemSelected getItemId returns wrong id

标签 java android android-actionbar

我尝试在单击每个图标时使用 FragmentPagerAdapter 将 actionBar 菜单项链接到滑动页面,但是随后,item.getItemId() 返回一个非常奇怪的数字而不是 1-5 数字,因为我只有 5 页。

我在 onCreate 之后的主 Activity 类中有以下内容:

 @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        mViewPager.setCurrentItem(id);
        return super.onOptionsItemSelected(item);
 }

我得到一个类似 2131624103 的数字,其中最后一位数字 (3) 是页码。

这是正常行为吗?我该怎么做呢?

最佳答案

您需要在 setCurrentItem 中传递位置并为此使用 switch case

@Override
    public boolean onOptionsItemSelected(MenuItem menuItem) {
        switch (menuItem.getItemId()) {
        case R.id.one:
            mViewPager.setCurrentItem(1);
            break;

        default:
            return super.onOptionsItemSelected(menuItem);
        }
        return true;
    }

关于java - 安卓 : onOptionsItemSelected getItemId returns wrong id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37341237/

相关文章:

java - 抽象 Java 机器人函数

java - 具有通用列表参数的函数? (重载功能)

android - IP 地址的 Nativescript http.post() MalformedURLException

android - 之前调用Fragment的onStart()来显示Viewpager、navigation_mode_tabs

使用 RS-422 的 Java 串行通信

JAVA - 如何让用户只能使用顶部的框架?

android - 在 Admob Android 上发布时是否需要删除测试设备?

android - ActionBarSherlock setCustomView 在 Android 3.2 中不起作用

android - 从全屏 Activity 开始新 Activity 会导致状态栏覆盖操作栏

java - 为什么 org.mindrot.JBCrypt 在这里说“盐长度错误”?