0
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 はまだそこにあり、向きを再度縦向きに変更すると、アプリケーションが停止しました。

どうすれば解決できますか?

4

1 に答える 1