我有一个包含许多片段的主活动,现在让我们假设2个活动a和b这里是代码
介绍活动
public class introductionActivity extends AppCompatActivity implements View.OnClickListener {
private static String TAG = "MyActivity";
private static Fragment fragment ;
public static android.support.v4.app.FragmentManager fragmentManager;
public static android.support.v4.app.FragmentTransaction fragmentTransaction;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_introduction);
if(savedInstanceState != null){
fragment = getSupportFragmentManager().getFragment(savedInstanceState, "MyFragment");
}
fragment = new intro1();
fragmentManager = getSupportFragmentManager();
fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.fragment_container, fragment);
fragmentTransaction.commit();
ActionBar actionbar = getSupportActionBar();
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
getSupportFragmentManager().putFragment(outState, " MyFragment", fragment);
}
@Override
public void onClick(View v) {
}
public static void doStuff(){
fragment = new intro2();
fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, fragment);
fragmentTransaction.commit();
}
}
介绍活动(mainActivity)包含将被第一个片段替换的frameLayout。
片段1
public class intro1 extends Fragment{
private View rootView;
public static Activity intro1Activity;
public Button intro1nxtButton;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.fragment_intro_1, container, false);
intro1nxtButton = (Button)rootView.findViewById(R.id.intro1Next_button);
intro1nxtButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
introductionActivity.doStuff();
}
});
// Inflate the layout for this fragment
return rootView;
}
}
第一个片段包含一个按钮,当它被按下后,一个被片段2替换
片段2
public class intro2 extends Fragment {
private View rootView;
public static Activity intro2Activity;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.fragment_intro_2, container, false);
// Inflate the layout for this fragment
return rootView;
}
}
我想要的是当我按下后退按钮或关闭介绍活动并重新打开它时,它应该恢复片段2而不是片段1