public class MainActivity extends FragmentActivity {
FragmentTransaction ft;
Button b1, b2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
ft.replace(android.R.id.content, new Fragment1());
} else {
ft.add(R.id.LinearLayout1, new MainFragment());
ft.add(R.id.LinearLayout2, new Fragment1());
}
ft.commit();
}
}
public class MainFragment extends Fragment implements OnClickListener{
Button b1,b2;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
return inflater.inflate(R.layout.activity_main_fragment, container, false);
}
@Override
public void onStart() {
super.onStart();
// ---Button view---
b1 = (Button) getActivity().findViewById(R.id.f1);
b2 = (Button) getActivity().findViewById(R.id.f2);
b1.setOnClickListener(this);
b2.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(v==b1){
FragmentManager fm = getActivity().getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.LinearLayout2,new Fragment2());
ft.commit();
}
if(v==b2){
FragmentManager fm =getActivity().getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.LinearLayout2,new Fragment3());
ft.commit();
}
}
}
这里的问题是,当应用程序在纵向模式下运行时,Fragment1 按我的意愿出现,当我将方向更改为横向时,MainFragment 和 Fragment2 也会出现,但 Fragment1 仍然存在,当我再次将方向更改为纵向时,应用程序停止。
我该如何解决?