Android ViewPager绑定Fragment 方法(一)

在项目中 用的是ViewPager+RadioGroup+Fragment实现页面的跳转。

public class MainActivity extends FragmentActivity implements RadioGroup.OnCheckedChangeListener, ViewPager.OnPageChangeListener {

    private TextView text_TopBar;
// 底部状态栏
    private RadioGroup rg_tab_bar;
// 底部状态按钮
    private RadioButton rb_channel;
    private RadioButton rb_message;
    private RadioButton rb_better;
    private RadioButton rb_setting;
    private RadioButton rb_my;
// ViewPager
    private ViewPager viewPager;
// Fragment适配器
    MyFragmentPagerAdapter adapter;

// 判断fragment的静态页数
    public static final int PAGE_ONE = 0;
    public static final int PAGE_TWO = 1;
    public static final int PAGE_THREE = 2;
    public static final int PAGE_FOUR = 3;
    public static final int PAGE_FIVE = 4;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        bindViews();
    }
 // 基本内容实例化方法
    private void bindViews() {
        text_TopBar = findViewById(R.id.title);
        viewPager = findViewById(R.id.viewPager);
        rg_tab_bar = findViewById(R.id.bottom_bar);
        rb_channel = findViewById(R.id.shouye);
        rb_message = findViewById(R.id.hangqing);
        rb_better = findViewById(R.id.guangchang);
        rb_setting = findViewById(R.id.qiuhuo);
        rb_my = findViewById(R.id.wode);
// 实例化适配器
        adapter = new MyFragmentPagerAdapter(getSupportFragmentManager());
// 设置监听
        rg_tab_bar.setOnCheckedChangeListener(this);
// viewpager加载适配器
        viewPager.setAdapter(adapter);
        viewPager.setCurrentItem(0);
        viewPager.addOnPageChangeListener(this);
        rb_channel.setChecked(true);


    }

    @Override
    public void onPageScrolled(int i, float v, int i1) {

    }

    @Override
    public void onPageSelected(int i) {

    }

    @Override
    public void onPageScrollStateChanged(int i) {
        // 0什么都不做 1 正在滑动 2 滑动结束
        if (i == 2) {
            switch (viewPager.getCurrentItem()) {
                case PAGE_ONE:
                    rb_channel.setChecked(true);
                    break;
                case PAGE_TWO:
                    rb_message.setChecked(true);
                    break;
                case PAGE_THREE:
                    rb_better.setChecked(true);
                    break;
                case PAGE_FOUR:
                    rb_setting.setChecked(true);
                    break;
                case PAGE_FIVE:
                    rb_my.setChecked(true);
                    break;
            }
        }

    }

    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        switch (checkedId) {
            case R.id.shouye:
                break;
            case R.id.hangqing:
                break;
            case R.id.guangchang:
                break;
            case R.id.qiuhuo:
                viewPager.setCurrentItem(PAGE_FOUR);
// 更新标题栏内容
                text_TopBar.setText("求货更新的信息");
                break;
            case R.id.wode:
                viewPager.setCurrentItem(PAGE_FIVE);
                text_TopBar.setText("我的");
                break;
        }

    }
}

主要是用FragmentAdapter来实例化自定义的适配器。与MainActivity 中的页数绑定。

public class MyFragmentPagerAdapter extends FragmentPagerAdapter {

// fragment总数
    private final int PAGER_CONUT = 5;
    private Fragment1 myFragment1;
    private Fragment2 myFragment2 = null;
    private Fragment3 myFragment3 = null;
    private Fragment4 myFragment4 = null;
    private Fragment5 myFragment5 = null;

    public MyFragmentPagerAdapter(FragmentManager fm) {
        super(fm);
        myFragment1 = new Fragment1();
        myFragment2 = new Fragment2();
        myFragment3 = new Fragment3();
        myFragment4 = new Fragment4();
        myFragment5 = new Fragment5();

    }

    @Override
    public Fragment getItem(int i) {
        Fragment fragment = null;
        switch (i) {
            case MainActivity.PAGE_ONE:
                fragment = myFragment1;
                break;
            case MainActivity.PAGE_TWO:
                fragment = myFragment2;
                break;
            case MainActivity.PAGE_THREE:
                fragment = myFragment3;
                break;
            case MainActivity.PAGE_FOUR:
                fragment = myFragment4;
                break;
            case MainActivity.PAGE_FIVE:
                fragment = myFragment5;
                break;
        }
        return fragment;
    }

    @Override
    public int getCount() {
        return PAGER_CONUT;
    }
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值