Android:onOptionsItemSelected getItemId返回错误的id

时间:2016-05-20 08:04:24

标签: java android android-actionbar

我试图在单击每个图标时使用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)是页码。

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

1 个答案:

答案 0 :(得分:2)

您需要在setCurrentItem中传递postition并为此

使用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;
    }