我有一个活动A,它包含一个列表和一个活动B,它使用一个片段显示活动A中的一个项目的细节。在活动B中有一个ViewPager,它允许我在列表中左右滑动查看不同的项目细节。问题是在哪里以及如何初始化活动B,以显示我在活动A中单击的项目的详细信息?
下面是我的FragmentStatePagerAdapter类,目前无论我在活动A中单击了哪一项,它总是启动第一项(尽管滑动函数正在工作)
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
        Cursor data;
        ArticleDetailUpdateFragment detailUpdateFragment;
        public ScreenSlidePagerAdapter(FragmentManager fm, Cursor data) {
            super(fm);
            this.data = data;
            detailUpdateFragment = new ArticleDetailUpdateFragment();
            long id = getIntent().getLongExtra(ArticleListActivity.EXTRA_ITEM_ID, -1);
            Log.d(TAG, "the itemId received in detail activity: " + String.valueOf(id));
            detailUpdateFragment.setId(id);
            // Add the fragment to the 'fragment_container' FrameLayout
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.pager, detailUpdateFragment).commit();
        }
        @Override
        public Fragment getItem(int position) {
            detailUpdateFragment = new ArticleDetailUpdateFragment();
            data.moveToPosition(position);
            long id = data.getLong(data.getColumnIndex(ItemsContract.Items._ID));
            detailUpdateFragment.setId(id);
            return detailUpdateFragment;
        }
        @Override
        public int getCount() {
            return pageCount;
        }
    }发布于 2018-05-23 22:39:50
你必须点击物品的位置,假设它是一个回收者视图,你可以使用这个方法得到这个位置。
viewholder.getAdapterPosition()接下来,您必须使用意图在activityB中传递此位置,并在将适配器附加到视图查看器之后将视图器的当前项设置为此位置。
viewpager.setCurrentItem(position, false)我们传递错误是因为我们一开始不想要动画
https://stackoverflow.com/questions/50498041
复制相似问题