2016-07-19 9 views
1

私はいくつかのタブを持つビューページャであるアクティビティを作成しました。各タブは、ユーザーが記入する必要があるフォームのようなものです。ユーザーが完了すると、ビュー・ページャーからのデータを収集し、結果として戻す必要があります。私はほとんどこれが動作しているが、何らかの理由で私の最初のタブのデータは、ユーザーが3番目のタブに移動したときにリセットされているようだ。私はこれがページャーでのリサイクルのいくつかのリサーチによるものだと推測しています。とにかく、別のタブからすべてのデータを集める簡単な方法があるのか​​、アクティビティとビューページオブジェクト間の密接な結合を作成する必要があるのでしょうか?ViewPagerからデータを収集するにはどうすればよいですか?

答えて

1

現在のページから2ページ離れている場合、ビューページャーはフラグメントを削除します。ページャが1ステップ離れたページ上にあるときに再作成します。

応じ

は、たとえば、あなたがにデータを渡すには、以下のようなフラグメントのリスナーを使用することができviewpagerを保持し、データを更新するために、フラグメントのリスナーを使用している あなたがあなたの活動にあなたのフォームデータを移動する必要があります

/フラグメント/含む活動

public interface MyFragmentListener{ 
    void saveMyFormData(MyFormData formData); 
    MyFormData getFormData(); 
} 
private MyFragmentListener mListener; 

//initialise fragment listener in onAttach (or elsewhere) 

private void initFormView(){ 
    MyFormData data = mListener.getFormData(); 
    //do stuff with data 
} 

private void saveData(){ 
    mListener.saveMyFormData(myFormDataObject); 
} 
+0

ありがとう、私はonPauseやそのようなものを聞くべきですか? – Barodapride

+0

'ViewPagerを使うことができます。あなたが探しているかもしれないページがいつ変更されたのかを聞くために、「onPageChangeListener'」 –

+0

残念ながら、私はそれを働かせることができませんでした。ユーザーが遠くにナビゲートして戻ってきた場合や、ビューページのフラグメントにデータオブジェクトを取得する方法については、どうにかして最初のタブの状態を復元する必要があります。 – Barodapride

関連する問題