我在viewpager中有4个片段(Easy,Normal,Hard,Advance),我只想在其他活动的onClick上打开Normal片段。
public class PagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;
public PagerAdapter(FragmentManager fm, List<Fragment> fragments) {
super(fm);
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
@Override
public int getCount() {
return this.fragments.size();
}
}
public class level_selection extends FragmentActivity {
private PagerAdapter mPagerAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.level_selection);
//initialsie the pager
this.initialisePaging();
}
private void initialisePaging() {
List<Fragment> fragments = new Vector<Fragment>();
fragments.add(Fragment.instantiate(this, Easy.class.getName()));
fragments.add(Fragment.instantiate(this, Normal.class.getName()));
fragments.add(Fragment.instantiate(this, Hard.class.getName()));
fragments.add(Fragment.instantiate(this, Advance.class.getName()));
this.mPagerAdapter = new PagerAdapter(super.getSupportFragmentManager(), fragments);
//
ViewPager pager = (ViewPager)super.findViewById(R.id.viewpager);
pager.setAdapter(this.mPagerAdapter);
}
}
基于上面的代码,任何人都可以指导我如何修改它以允许onClick从其他Activity打开片段“Normal”?
最诚挚的问候,
答案 0 :(得分:2)
使pager
成为一个类字段,然后使用onClick
方法:
pager.setCurrentItem(1);
这假设你的正常&#34; Fragment
List
中始终有索引1(来自您的代码,实际上是索引1)
答案 1 :(得分:1)
请尝试这种方式,希望这有助于您解决问题。
ViewPager pager = (ViewPager)super.findViewById(R.id.viewpager);
pager.setAdapter(this.mPagerAdapter);
pager.setCurrentItem(1);
或强>
List<Fragment> fragments = new Vector<Fragment>();
fragments.add(Fragment.instantiate(this, Normal.class.getName()));
fragments.add(Fragment.instantiate(this, Easy.class.getName()));
fragments.add(Fragment.instantiate(this, Hard.class.getName()));
fragments.add(Fragment.instantiate(this, Advance.class.getName()));