2016-05-15 14 views
0

私がしたいのは、同じツールバー(アクティビティから)をSpinnerで共有する3つのフラグメントでタブ付きのアクティビティを持つことです。私は、ユーザーがスピナーの値を変更したときに、各フラグメント内のリストビューのデータを更新したいと思います。アンドロイド - 呼び出しアクティビティからリスナーを共有するフラグメント

まず、各フラグメントでonItemSelectedListenerを設定しようとしましたが、本当に変わったことがありました。それから、まったく同じように複数のリスナーを設定するのは悪い考えです。だから今私は活動の中でそれを持っています。リスナーは値が変更されたときに呼び出されますが、その内容を更新できるように呼び出されたことをフラグメントに伝える必要があります。

ありがとうございます!

答えて

0

フラグメントインスタンスへの参照がある場合は、フラグメント内にメソッドを追加して、選択変更を通知できます。あなたがViewPagerを使用していて、あなたがイベントバスを使用することができフラグメントインスタンスへの参照を持っていない場合は

// inside fragment 
public void selectionChanged(int position) { 
    // update listView 
} 


// in the activity 
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
    fragmentA.selectionChanged(position); 
    fragmentB.selectionChanged(position); 
    fragmentC.selectionChanged(position); 
} 

。ここで

はカップルです:
Otto
EventBus

+0

彼らが活動中でインスタンス化され、ViewPagerを使用していする方法はありますか?私はAndroidプログラミングではまったく新しく、タブ付きアクティビティがどのように機能するか分かりません(デフォルトのタブ付きアクティビティ作成者を使用しました)。 編集:これは大学のプロジェクト用で、外部ライブラリを使用することが問題である可能性があるため、このソリューションが好きです。 –

+0

はい、あなたのアクティビティでフラグメントをインスタンス化し、ポケットベルアダプタに渡すことができます。 –

+0

そして、アクティビティ内でインスタンス化されたときにフラグメントをどのように(?)表示するのですか? –

関連する問題