package com.pyz.myproject; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v7.app.AppCompatActivity; import android.widget.RadioButton; import android.widget.RadioGroup; public class MainActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener { private static final String TAG = "MainActivity"; private RadioButton btn1, btn2, btn3, btn4; private Fragment1 fragment1; private Fragment2 fragment2; private Fragment3 fragment3; private Fragment4 fragment4; private Fragment mContent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); RadioGroup navigation = (RadioGroup) findViewById(R.id.navigation); if (navigation != null) { navigation.setOnCheckedChangeListener(this); } btn1 = (RadioButton) findViewById(R.id.fragment1); btn2 = (RadioButton) findViewById(R.id.fragment2); btn3 = (RadioButton) findViewById(R.id.fragment3); btn4 = (RadioButton) findViewById(R.id.fragment4); fragment1 = new Fragment1(); fragment2 = new Fragment2(); fragment3 = new Fragment3(); fragment4 = new Fragment4(); getSupportFragmentManager().beginTransaction().add(R.id.home_container, fragment1).commit(); mContent = fragment1; } @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId) { case R.id.fragment1: btn1.setChecked(true); btn2.setChecked(false); btn3.setChecked(false); btn4.setChecked(false); switchFragment(fragment1); break; case R.id.fragment2: btn1.setChecked(false); btn2.setChecked(true); btn3.setChecked(false); btn4.setChecked(false); switchFragment(fragment2); break; case R.id.fragment3: btn1.setChecked(false); btn2.setChecked(false); btn3.setChecked(true); btn4.setChecked(false); switchFragment(fragment3); break; case R.id.fragment4: btn1.setChecked(false); btn2.setChecked(false); btn3.setChecked(false); btn4.setChecked(true); switchFragment(fragment4); break; } } private void switchFragment(Fragment fragment) { if (mContent != fragment) { if (!fragment.isAdded()) {//判断fragment是否已经添加过 //先把当前的fragment隐藏,把用到的fragment添加上去 getSupportFragmentManager().beginTransaction().hide(mContent).add(R.id.home_container, fragment).commit(); } else { //先把当前的fragment隐藏,把已经添加过的并需要用到的fragment显示出 getSupportFragmentManager().beginTransaction().hide(mContent).show(fragment).commit(); } mContent = fragment; } } }