2017-10-10 5 views
0

私は3つの断片(A、B、C)を活性化しています。フラグメントAはBへ導かれ、フラグメントBはCへ導かれる。 フラグメントCでは、ユーザは2つの選択肢を有する。彼はフラグメントAに戻ることも、アクティビティ全体を破壊することもできます。 フラグメントAに戻ることを選択した場合、現在のデータセットをフラグメントCのリストに保存し、同じサイクルを繰り返します。しかし、次回にフラグメントCに到達すると、現在のデータをそのリストに追加します。巡回フラグメント操作でデータを保存する方法は?

これをonPause()およびonResume()を使用して実装するにはどうすればよいですか?これを行うより良い方法があるなら、親切に私に知らせてください。データはオブジェクトのArrayListになるので、私は共有の設定に保存できません。

誰でも私がコード内でこれをどのように実装できるかの基本的な構造を示すことができれば幸いです。あなたはフラグメントとアクティビティの間の通信を実装する必要が

+0

共有設定でデータを保存できます。 –

+0

https://stackoverflow.com/questions/23024831/android-shared-preferences-example –

+0

共有環境設定を使用することをおすすめしません。その目的は、アプリが強制終了されたときにデータを保持することです。活動/断片。それには他にも方法があります。 – Eselfar

答えて

0

オプション1

。 アクティビティはオブジェクトにすべての情報を保持し、フラグメントは再開時にオブジェクトを取得し、必要に応じて更新します。ここ

the official documentation

onResumeに続い
public class HeadlinesFragment extends ListFragment { 
    OnHeadlineSelectedListener mCallback; 

    // Container Activity must implement this interface 
    public interface OnHeadlineSelectedListener { 
     public void onArticleSelected(int position); 
    } 

    @Override 
    public void onAttach(Activity activity) { 
     super.onAttach(activity); 

     // This makes sure that the container activity has implemented 
     // the callback interface. If not, it throws an exception 
     try { 
      mCallback = (OnHeadlineSelectedListener) activity; 
     } catch (ClassCastException e) { 
      throw new ClassCastException(activity.toString() 
        + " must implement OnHeadlineSelectedListener"); 
     } 
    } 

    ... 
} 

()情報を取得するフラグメントコールmCallback.getObject()の一例です。オブジェクトを更新します。

オプション2

他のオプションは、すべてのフラグメントによってアクセスされるデータを保持する外部マネージャ・クラスを作成することです。シングルトンでも構いませんが、アクティビティが破壊されたときに破壊する必要があります

関連する問題