Fragment与RadioButton结合使用

//初始化控件

    private void initView() {
        rb_1 = (RadioButton) findViewById(R.id.rb_01);
        rb_2 = (RadioButton) findViewById(R.id.rb_02);
       rb_3 = (RadioButton) findViewById(R.id.rb_03);
       rb_4 = (RadioButton) findViewById(R.id.rb_04);
}


//初始化监听事件

    private void initEvents() {
        rb_1.setOnClickListener(this);
        rb_2.setOnClickListener(this);
        rb_3.setOnClickListener(this);
        rb_4.setOnClickListener(this);
    }

//重写监听方法

    @Override
    public void onClick(View v) {

        switch (v.getId()) {
            case R.id.rb_01:
                select(0);
                break;
            case R.id.rb_02:
                select(1);
                break;
            case R.id.rb_03:
                select(2);
                break;
            case R.id.rb_04:
                select(3);
                break;
        }


    }

//管理Fragment的方法,在监听事件中调用

 private void select(int i) {
        FragmentManager fm = getSupportFragmentManager();  //获得Fragment管理器
        FragmentTransaction ft = fm.beginTransaction(); //开启一个事务

        hidtFragment(ft);   //隐藏Fragment的方法,先判断fragment是否为空,如果不为空则隐藏Fragment

        switch (i) {//点击切换fragment,如果fragment为空,则创建,如果不为空,就显示
            case 0:
                if (firstFragment == null) {
                    firstFragment = new Fragment1();
                    ft.add(R.id.FramLaout, firstFragment);
                } else {
                    ft.show(firstFragment);
                }
                break;
            case 1:
                if (secondFragment == null) {
                    secondFragment = new Fragment2();
                    ft.add(R.id.FramLaout, secondFragment);
                } else {
                    ft.show(secondFragment);
                }
                break;
            case 2:
                if (thirdFragment == null) {
                    thirdFragment = new Fragment3();
                    ft.add(R.id.FramLaout, thirdFragment);
                } else {
                    ft.show(thirdFragment);
                }
                break;
            case 3:
                if (fourFragment == null) {
                    fourFragment = new Fragment4();
                    ft.add(R.id.FramLaout, fourFragment);
                } else {
                    ft.show(fourFragment);
                }
                break;
        }
        ft.commit();   //提交事务

    }

//隐藏所有的Fragment,在上面会用到

 private void hidtFragment(FragmentTransaction fragmentTransaction) {
        if (firstFragment != null) {
            fragmentTransaction.hide(firstFragment);

        }
        if (secondFragment != null) {
            fragmentTransaction.hide(secondFragment);

        }
        if (thirdFragment != null) {
            fragmentTransaction.hide(thirdFragment);

        }
        if (fourFragment != null) {
            fragmentTransaction.hide(fourFragment);

        }

    }

//设置第一个页面为默认页面
    private void initDefultView() {
        FragmentManager fm = getSupportFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
        firstFragment = new Fragment1();
        ft.add(R.id.FramLaout, firstFragment);
        ft.commit();
    }






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值