2017-09-27 11 views
0

Activityに属するRecyclerView.Adapterが設定されています。このActivityにはボタンが含まれています。このアダプタには、チェックボックスを持つ行が含まれています。このボタンをクリックすると、すべての行のチェックボックスを非表示にしたいと思います。 アダプタでViewHolderのパターンを使用しています。ボタンがクリックされたときにチェックボックスを非表示にする

私は、このソリューションでは思っている:私の活動の

パスをアダプタのコンストラクタにパラメータとして。このアクティビティには、ボタンがクリックされたかどうかを確認するメソッドが含まれています。このボタンをクリックすると値が変更され、notifyDataSetChanged()が呼び出されます。アダプタはチェックボックスを表示/非表示にします。

これは良い考えですか?

答えて

0

考えられる解決策:

  • 各ビューホルダーがモデルクラスに関連しています。このモデルクラスでは、対応するビューホルダーにチェックボックスが表示されるかどうかを示すブール値を保持できます。 ボタンをクリックすると、影響を受けるアイテムを反復処理し、ブール値をtrueに変更できます。次に、影響を受けた項目で変更されたデータに通知します。

  • アダプタには、すべてのチェックボックスを非表示にするかどうかを示すブール値を保持できます。 各ビューホルダーは、作成時に参照としてアダプターを受け取ります(アクティビティーは不正です)。チェックボックスを表示するか非表示にするかをこのブール値でチェックします。 ボタンをクリックすると、アダプタブール値が更新され、変更された通知データがトリガされます。

+0

最初のケースでは、アクティビティはアダプタのインスタンスを作成して保持しますか?このようにして、ボタンはアイテムを繰り返し処理するアダプタのメンバを呼び出すことができます。 – learner

+0

はい。アダプタのインスタンスを保持し、必要に応じてその機能を使用します(たとえば、ボタンがクリックされたとき)。 – Idanatz

関連する問題