2017-02-04 16 views
-2

私はリストビューを持つフラグメントを持っており、ユーザはそのリスト内のアイテムを選択することができます。少なくとも1つのアイテムが選択状態にあるときは、親アクティビティにツールバーの「削除」ボタンが表示されます。これを達成するために断片からイベントを起こすだけですか?フラグメントアクティビティと親アクティビティの間の通信

削除や削除はどうしたらいいですか?いずれにしても、アクティビティは何らかの理由でフラグメントに削除を要求するか、リストにリロードするよう要求する(アクティビティが削除を行う場合)。

この種のアクティビティ/フラグメント通信のベストプラクティスを実際に探し、カップリングを減らすために(おそらくインターフェイスも一部を果たします)。

私のフラグメントは現在、データベースからリストのアイテムを取得する責任がありますが、私が読んだ本では、代わりにこれを行うアクティビティが表示され、アイテムがフラグメントに渡されます。各アプローチの長所と短所は何ですか?

答えて

2

あなたのすべてのサブ質問に対する答えとして、クラスを疎結合にしておき、EventBusを使用してそれらをリンクするのが理想的な方法です!

EventBusは、コンポーネントが互いに明示的に登録する必要がなく(したがって互いに認識することなく)、コンポーネント間でパブリッシュ/サブスクライブ形式の通信が可能です。これは、明示的な登録を使用して従来のJavaのインプロセスイベント配信を置き換えるためにのみ設計されています。

これにより、イベントとしてデータを複数のクラスに渡して、複数の他のクラスのイベントを聴くことができます。使用方法を確認するには、こちらを参照してくださいAnswer

関連する問題