Java Android:OnOptions ItemSelected getItemId返回错误的id

Java Android:OnOptions ItemSelected getItemId返回错误的id,java,android,android-actionbar,Java,Android,Android Actionbar,我试图在单击每个图标时使用FragmentPagerAdapter将actionBar菜单项链接到滑动页面,但是item.getItemId()返回一个非常奇怪的数字,而不是1-5,因为我只有5个页面 在onCreate之后,我在主活动类中有以下内容: @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); mViewPager.

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

在onCreate之后,我在主活动类中有以下内容:

 @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        mViewPager.setCurrentItem(id);
        return super.onOptionsItemSelected(item);
 }
我得到了一个类似于2131624103的数字,其中最后一个数字(3)是页码


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

您需要在setCurrentItem中传递position,并为此使用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;
    }

您需要传递setCurrentItem中的位置而不是id!!因此,您可以在本例中使用switch casecase@NiravRanpara,我如何获得职位?它位于扩展FragmentPagerAdapter的另一个类中。
item.getItemId()
返回项目的ID,如果您将其与其中一个选项的ID进行比较,您可以快速找出该选项是否为所选元素。现在有意义了,我认为menuItem.getItemId()返回位置,我也不知道我从何处得到这个想法。