从片段中设置viewPager的currentItem

Hen*_*988 4 android android-fragments android-viewpager

我正在开发一个项目,我在一个屏幕上使用View Pager,它只有两个页面.

在第一个我有一个简单的形式与一些小部件.在第二页,我有listview与一些产品名称和数量.

在选择放置在第一页(Frgament)中的微调器的特定选项后,是否可以从第一页更改为第二页?

我读过类似的问题,这个方法:

ViewPager.setCurrentItem(int index);
Run Code Online (Sandbox Code Playgroud)

可以更改为特定页面,我不知道如何引用我在我的活动主机上从我的片段声明的viewpager对象.

Gau*_*ora 22

虽然,我完全不理解这个场景.从我的理解,这是一个在这种情况下工作的黑客.

在活动中:

public ViewPager getViewPager() {
   if (null == mViewPager) {
       mViewPager = (ViewPager) findViewById(R.id.view_pager_id)
   }
   return mViewPager;
}
Run Code Online (Sandbox Code Playgroud)

在片段中:

((YourActivitName)getActivity()).getViewPager().setCurrentItem(index);
Run Code Online (Sandbox Code Playgroud)

  • 更好写public void setCurrentPagerItem(int item){pager.setCurrentItem(item); 在Activity中. (8认同)
  • @DoctororDrive的解决方案更"正确"(注意引号),因为您没有直接暴露ViewPager,这属于内部Activity的实现.当然Java允许你做任何一个,你会得到支持这两种方法的人. (2认同)