在onCreate 方法中先把第一个fragment先装进去,
后面每次点相应的RadioButton就用transaction.replace方法来装另一个fragment,具体代码如下:
public class MainActivity extends Activity {
private FragmentTransaction transaction;
//这是三个fragment
private Homefragment mHomeFragment;
private Mintaofragment mMinTaoFragment;
private Servicefragment mServicefragment;
private RadioGroup mMainRadioGroup;
public View mMainView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main1);
mMainView = new View(this);
transaction = getFragmentManager().beginTransaction();
mHomeFragment = new Homefragment();
transaction.add(android.R.id.tabcontent, mHomeFragment);
transaction.commit();
mMainRadioGroup = (RadioGroup) findViewById(R.id.radiogroup);
mMainRadioGroup.setOnCheckedChangeListener(checkedChangeListener);
}
private OnCheckedChangeListener checkedChangeListener = new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.radio_home:
if (null == mHomeFragment) {
mHomeFragment = new Homefragment();
}
replaceFragment(mHomeFragment);
break;
case R.id.radio_mintao:
if (null == mMinTaoFragment) {
mMinTaoFragment = new Mintaofragment();
}
replaceFragment(mMinTaoFragment);
break;
case R.id.radio_service:
if (null == mServicefragment) {
mServicefragment = new Servicefragment();
}
replaceFragment(mServicefragment);
break;
default:
break;
}
}
};
public void replaceFragment(Fragment fragment) {
transaction = getFragmentManager().beginTransaction();
transaction.replace(android.R.id.tabcontent, fragment);
// Commit the transaction
transaction.commit();
}
}