show hide 显示隐藏切换Fragment

show hide

public class MainActivity extends FragmentActivity implements OnCheckedChangeListener {
	private RadioGroup group;
	private FragmentManager manager;
	private Fragment01 fragment01;
	private Fragment02 fragment02;
	private Fragment03 fragment03;
	private Fragment04 fragment04;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		//去掉标题栏
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.activity_main);
		
		group = (RadioGroup) findViewById(R.id.radio_group);
		
		manager = getSupportFragmentManager();
		
		fragment01 = new Fragment01();
		
		//添加这个方法在使用的时候同一个fragment只能添加一次,否则会报错...结合着show和hide方法去使用
		manager.beginTransaction().add(R.id.ralative, fragment01).commit();
		
		//给group设置选中改变的监听事件
		group.setOnCheckedChangeListener(this);
	}
	@Override
	public void onCheckedChanged(RadioGroup group, int checkedId) {
		FragmentTransaction transaction = manager.beginTransaction();
		
		//在刚开始点击的时候,先判断fragment是否为空,,,如果不为空先让他隐藏
		if (fragment01 != null) {
			transaction.hide(fragment01);
		}
		if (fragment02 != null) {
			transaction.hide(fragment02);
		}
		if (fragment03 != null) {
			transaction.hide(fragment03);
		}
		if (fragment04 != null) {
			transaction.hide(fragment04);
		}
		
		// TODO Auto-generated method stub
		switch (checkedId) {//点击选中某个button的时候要么去显示要么去添加,,,没有去添加,,,有则显示出来
		case R.id.radio_01:
			//manager.beginTransaction().replace(arg0, arg1).commit()
			if (fragment01 == null) {
				fragment01 = new Fragment01();
				transaction.add(R.id.ralative, fragment01);
			}else {
				transaction.show(fragment01);
			}
			break;
		case R.id.radio_02:
			if (fragment02 == null) {
				fragment02 = new Fragment02();
				transaction.add(R.id.ralative, fragment02);
			}else {
				transaction.show(fragment02);
			}
			break;
		case R.id.radio_03:
			if (fragment03 == null) {
				fragment03 = new Fragment03();
				transaction.add(R.id.ralative, fragment03);
			}else {
				transaction.show(fragment03);
			}
			break;
		case R.id.radio_04:
			if (fragment04 == null) {
				fragment04 = new Fragment04();
				transaction.add(R.id.ralative, fragment04);
			}else {
				transaction.show(fragment04);
			}
			break;

		default:
			break;
		}
		
		//提交
		transaction.commit();
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值