ユーザーがでから を選択すると、表示が異なり、これらが変更されActivity
ましFragments
た。 で更新しました。現在表示されているフラグメントに、 ActionBar の更新メニュー ボタンを使用してコンテンツを更新するように指示したい場合。Fragments と通信する Listener を実装する必要がありますか? または、 a を使用して Fragment に refresh を通知する必要があります。どっちがいい?? 私はこれらのいずれも実装していません。 fragments
item
spinner
ActionBar
button
ActionBar
BroadCastReciever
2 に答える
それは本当に簡単な質問ではありません。一方では、ブロードキャストはおそらくこのような単純なタスクにはやり過ぎになるので、リスナーを使用することをお勧めします。しかし..
ただし、フラグメントの仕組みを理解していることを確認してください。コードからそれらを作成し、すぐにリスナーを設定する場合は、初めて機能します。ただし、システムがフラグメントを再インスタンス化するときに、アクティビティの再作成で問題が発生する可能性があります。この場合、Fragment の public empty コンストラクターを使用するだけで、リスナーが設定されていないとコードがうまくいかない可能性があります。
onAttach()
したがって、またはのように、フラグメント自体からリスナーを設定することをお勧めしますonStart
。getActivity()
そこで、リスナーを使用してアクティビティを保持し、設定できます。このアプローチの短所は、アクティビティを特定のクラスにキャストしてリスナーメソッドにアクセスする必要があることです。これにより、他のアクティビティでのフラグメントの再利用が制限されるため、この事実に注意してください。
それが役に立てば幸い
ブロードキャストは、より多くの視聴者に「話す」必要がある場合にのみ使用してください。あなたの場合、1 つのフラグメントと 1 つのボタンが必要な場合は、リスナーを実装することをお勧めします。アクションバーボタンのアクションをリッスンしてからフラグメントに更新を指示するアクティビティ、またはこれら2つを直接バインドするアクティビティのいずれかです