2

私はアイテムデータがあるリサイクルビューを持っている状況に陥っています。同じリサイクルビューで操作するためにビューポートのすべてのフラグメント(3つ)に同じインスタンスをフェッチする必要があります。私がやっていることviewpagerのすべてのフラグメントで同じchildfragments(recyclerviewを持つ)インスタンスを取得する方法は?

:私は私のviewpagerフラグメントに子フラグメントとして追加しようとしている今、共通のボタンやリスト内のオプションとしてItemListFragmentとして1人の別個のフラグメントの名前をした

。子フラグメントとして追加できますが、この時点では、すべてのPrentFragmentsに対して3つの異なるItemListFragmentを作成する必要があります。

この状況を克服したり、3つのすべてのフラグメントで共通のリサイクルリストを使用するための他の方法を教えてください。私はstackoverflowを検索しましたが、何の助けもありません。ここで

は、状況についてのアイデアを得るための画像です:

enter image description here

+0

のように断片BにchildFragmentを添付して、今、nullを取得することはできませんあなたが持っているものを示し、いくつかのコードを表示してください試しました。また、レイアウトを示すためのスクリーンショットやモックアップを表示してください。 –

+0

@ Code-Apprentice状況を知るために画像を見てください。コードは非常にシンプルで、viewpagerで3つのフラグメントを持つ1つのtablayoutがあり、それぞれにrecyclerviewの共通の子フラグメントが必要です –

+0

なぜ、子フラグメントがすべて同じインスタンスでなければならないのですか?あなたは同じクラスのいくつかのインスタンスを作成できますか? –

答えて

1

あなたはこのケースではグローバルな静的参考技術を使用して試すことができます。

アプリケーションクラス(Androidのアプリケーションクラスを拡張するクラス)で子ビューを宣言します。

あなたのフラグメントのいずれかで今
public class AppController extends Application{ 
    public static final String LOG_TAG = ApplicationController.class 
     .getSimpleName(); 

    // Application Instance 
    private static ApplicationController applicationController = null; 

    public static ListView childview; 
    public static ChildAdapter childAdapter; 

    @Override 
    public void onCreate() { 
    super.onCreate(); 
    applicationController = this; 
    } 
} 

その参照はAppControllerの中varibaleが今含むグローバルであるため、そのnullは、通常、他のchilfragmentsのようにそれをinitilize場合フラグメントAは、そのnullかどうかchildFragmentのグローバルオブジェクトを確認したとしchildfragmentのインスタンス断片Bで今

グローバル参照nullかどうかをチェックし、あなたがフラグメントAでそれを初期化するので、あなたが通常のchildfragments

+0

私はそれを試して、あなたに戻って戻ってきます –

関連する問題