public class MainActivity extends FragmentActivity {
ViewPager vp;
List<Fragment> list;
RadioGroup rg;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*
* 1:实例化控件 2:初始化数据 3:创建适配器 4:绑定
*/
vp = (ViewPager) findViewById(R.id.vp);
// 初始化数据源
initData();
// 设置适配器
MyFragmentPagerAdapter adapter = new MyFragmentPagerAdapter(getSupportFragmentManager());
vp.setAdapter(adapter);// 添加适配器
// 关联
vp.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
switch (arg0) {
case 0:
rg.check(R.id.rb1);
break;
case 1:
rg.check(R.id.rb2);
break;
case 2:
rg.check(R.id.rb3);
break;
case 3:
rg.check(R.id.rb4);
break;
default:
break;
}
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
rg = (RadioGroup) findViewById(R.id.rg);
// 选中改变监听事件
rg.setOnCheckedChangeListener(new OnCheckedChangeListener() {
/*
* 参数1:当前RadioGroup对象 参数2:当前被选中的RadioButton的id
*/
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.rb1:
vp.setCurrentItem(0);
break;
case R.id.rb2:
vp.setCurrentItem(1);
break;
case R.id.rb3:
vp.setCurrentItem(2);
break;
case R.id.rb4:
vp.setCurrentItem(3);
break;
default:
break;
}
}
});
}
// 初始化数据方法
private void initData() {
list = new ArrayList<Fragment>();
list.add(new FragmentLL());
list.add(new FragmentYYL());
list.add(new FragmentBBY());
list.add(new FragmentW());
}
// 创建适配器
class MyFragmentPagerAdapter extends FragmentPagerAdapter{
public MyFragmentPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int arg0) {
return list.get(arg0);
}
@Override
public int getCount() {
return list.size();
}
}
}
ViewPager+Fragment
最新推荐文章于 2024-04-11 14:24:13 发布
本文介绍了一个使用Android中的ViewPager与Fragment实现页面切换联动的例子。通过RadioGroup进行页面选择,并结合ViewPager的OnPageChangeListener实现页面切换时的同步更新。此外,还展示了如何通过自定义的MyFragmentPagerAdapter来管理多个Fragment。

1458

被折叠的 条评论
为什么被折叠?



