1

それぞれが独自のタブにある 2 つのフラグメントで構成されるアプリをいじっています。1 つはリストフラグメントで、もう 1 つはマップフラグメントです。ロケーションが変更されると、両方のフラグメントでロケーションの更新が必要になります。

このチュートリアルを読んでいます。

これをホストアクティビティに実装し、場所が更新されるたびに各フラグメントに場所を渡す必要があるかどうか疑問に思っています。しかし、私はこれについてどうすればよいかわかりません。リストフラグメントは、クラスに関連付けられたローダーにそれを渡す必要があるためです。

または、各フラグメントのコールバックを実装し、ErrorDialogFragment と servicesConnected をホスト クラスのメンバーとして保持する可能性がありますか? それとも別のクラスでも?コードの重複を避けるため。

皆さんはどう思いますか?

4

1 に答える 1

0

1 つのオプションは、LocalBroadcastManager を使用することです。

この場所を必要とする各フラグメントで、たとえばアクション「LOCATION_WAS_JUST_UPDATED」のレシーバーを登録します。

どこで場所を取得するのかわかりませんが、とにかく機能します。たとえば、サービス内にある場合は、次のように呼び出すだけです。

LocalBroadcastManager.getInstance(mContext).sendBroadcast(new Intent("LOCATION_WAS_JUST_UPDATED"));

もちろん、このインテントを使用してバンドル内の場所を渡すことも、単に永続的なコンテナーに設定することもでき、このブロードキャストを受信するフラグメントはローカルの場所を更新できます。

于 2013-09-24T14:46:16.967 に答える