0

http://imgur.com/a/dFeLT 私は2つのスピナーを同期しようとしているので、最初のタブで項目を選択すると、 2番目のタブで選択します。ViewPager/TabLayoutを使用して2つのフラグメントでSpinnerを同期

特定のフラグメントでonCreateViewの間にスピナービューを更新しましたが、フラグメントが表示される前にビューが既に作成されているため、何も変わりません。

また、スワイプとスピナーの更新の間に遅延があるため、フラグメントがsetUserVisibleHintをオーバーライドして表示されるようになったときに、スピナーの選択したアイテムを更新しようとしました。

フラグメント1からスワイプすると、フラグメント2のスピナーのアイテムが既に設定されているように、2つのスピナーを同期させることはできますか?両方の方法で動作する必要があります。

乾杯

答えて

0

あなたはフラグメントを膨張させる前に、データを取得するためにsetArgumentsとgetArgumentsを使用することができます。ここで

はサンプルコードです:

親クラス:

Bundle bundle = new Bundle(); 
fragment1 = new Fragment1(); 
bundle.putString("key1","messageContent"); 
fragment1.setArguments(bundle); 

断片クラス:

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup 
container, @Nullable Bundle savedInstanceState) { 
    String x; 
    Bundle bundle = new Bundle(); 
    bundle = getArguments(); 
    x= bundle.getString("key1"); 
    return super.onCreateView(inflater, container, savedInstanceState); 
} 
+0

フラグメントにフラグメントからのデータを通信するには私の問題ではありませんどのように、それは実際よります他のフラグメントスピナーを目に見えない遅延なく更新する。 setUserVisibleHint/getUserVisibleHintは本当にうまくいきます。本当に返される前にスワイプした後に、文字通り新しいフラグメントを見ることができるからです。 onCreate/onCreateViewも使用できません。なぜなら、フラグメントは1回だけ膨張し、スワイプするたびに膨張するわけではないからです。 –