1

フラグメントが正しく復元されないことがあります。これは、アプリがバックグラウンド キャッシュ プロセスに存在しなくなり、再度開いたときに発生します。それが起こったとき、書かれていることはすべてonActivityCreated起こっていませんが、私System.out.println();は呼ばれています。そのため、アイテムはもうクリックできなくなります。どうすれば修正できますか?

    @Override
public void onActivityCreated(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onActivityCreated(savedInstanceState);
    System.out.println("onActivityCreated");

    relative1 = (RelativeLayout)getActivity().findViewById(R.id.r1);
    relative2 = (RelativeLayout)getActivity().findViewById(R.id.r2);
    relative3 = (RelativeLayout)getActivity().findViewById(R.id.r3);
    relative4 = (RelativeLayout)getActivity().findViewById(R.id.r4);

    relative1.setOnClickListener(this);
    relative2.setOnClickListener(this);
    relative3.setOnClickListener(this);
    relative4.setOnClickListener(this);

}
4

1 に答える 1

0

アプリをバックグラウンドに送信してからフォアグラウンドに送信するときに、メモリの問題があるか、[アクティビティを保持しない] がチェックされていると、これが発生します。アクティビティとフラグメントが再度作成されます。あなたの状況では、バックグラウンドで長時間保持すると、おそらく再作成されます。これが発生すると、Activity は開いたフラグメントの兆候を保持し、それらを再度開きます。を制御しないと、そのフラグメントはアクティビティの onCreate で開かれ、アクティビティもその記号で開かれます。フラグメントが開かれているかどうかをフラグで制御すると、これを修正できます。既に作成されている場合は、2 つ目を開くべきではありません。

于 2013-09-25T20:31:25.107 に答える