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();
}
}