get currunt item from viewpager android



我使用视图寻呼机为Android应用程序滑动视图。我动态构建视图寻呼机。就像添加和删除项目一样。现在我想知道如何获取视图寻呼机项目的准确位置。例如,我有 3 个项目,我想在第二个或第一个项目时获得第 3 个数字位置。我曾经viewPager.getCurrentItem()但它回到了我所在的位置。请建议我如何提供每个viewpager项目的个人ID,并在项目是背景或屏幕上时使用它。谢谢请帮我解决这个问题,我已经为此离开了 2 周。提前致谢

public TabsPageAdapter(FragmentManager fm) {
        super(fm);
    }
    @Override
    public Fragment getItem(int i) {
        return new MyWebBrowser();
    }
    @Override
    public int getItemPosition(Object object) {
       return PagerAdapter.POSITION_NONE;
    }
    @Override
    public int getCount() {
        return COUNT_TAB;
    }
}

现在这段代码在我的片段类下,我想从WebView chrom class将标题设置为网站标题。

@Override
        public void onReceivedTitle(WebView view, String title) {
            TAB_TITLE=title;
            Toast.makeText(HomeActivity.this,title,Toast.LENGTH_LONG).show();
            super.onReceivedTitle(view, title);
        }
看看

这个适配器:

 class MyAdapter extends FragmentStatePagerAdapter
    {
        private final SparseArray<WeakReference<YourFragment>> mPageReferences;
        public MyAdapter(FragmentManager fm) {
            super(fm);
            mPageReferences = new SparseArray<WeakReference<YourFragment>>();
        }
        @Override
        public Fragment getItem(int i) {
            WeakReference<YourFragment> fragment = 
                    new WeakReference<YourFragment>(YourFragment.newInstance());
            mPageReferences.put(i, fragment);
            return fragment.get();
        }
        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            super.destroyItem(container, position, object);
            mPageReferences.remove(position);  
        }
        @Override
        public int getCount() {
            return number of fragment;
        } 
        public YourFragment getFragment(int key) {      
            return mPageReferences.get(key).get();              
        }
        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            WeakReference<YourFragment> fragment = new WeakReference<YourFragment>((YourFragment) super.instantiateItem(container,
                    position));
            mPageReferences.put(position, fragment);
            return fragment.get();
        }
    }

您可以轻松地从mPageReferences获取任何页面的引用,但要小心,因为它可能是空的,因为当您调用它时它可能尚未创建。 您可以使用(getFragment(int key)将项目放在key

的位置)

您可以从PagerAdapter中知道当前位置。 通过调用pageAdapter.getItemPosition(itemNumber)

文档链接

最新更新