0

アイテムリセレクション用のスイッチ付きカスタムリサイクルビューを実装しています。私はApp Bar(一番上のバー)の右隅にある "Select All"オプションを持っています。私はユーザーがSelect Allオプションを使用できるようにしたい、また、recyclerviewで個々のアイテムを選択できるようにしたい。すべてのオプションと個々のアイテムを選択してくださいリサイクルビューandroid

Select Allと一緒に個々の選択を実装する方法がわかりません。 [すべてを選択]オプションを使用した後にアイテムが選択解除され、リストがスクロールされると、itemは下のコードのonBindViewHolderメソッドでisSelectedAllフラグがtrueに設定されると自動的に選択されます。

******SELECT ALL CLICK LISTENER IN ACTIVITY CLASS****** 
mBinding.imageViewActionSelect.setOnClickListener(v -> { 
    mAdapter.selectAll(); 
}); 

******ADAPTER CLASS****** 
public void selectAll() { 
    isSelectedAll = true; 
    notifyDataSetChanged(); 
} 

@Override 
public void onBindViewHolder(MyViewHolder holder, int position) { 
    if (isSelectedAll) { 
     holder.mSwitchView.setChecked(true); 
    } 
    else 
     holder.mSwitchView.setChecked(false); 
} 
+1

コレクションモデルでそのフラグを追加しようとしました –

+0

個々の複数の選択状態を処理するフィールドを追加しましたか?はいの場合は、すべてのアイテムフィールド値をtrueにし、アイテムを選択解除すると、そのフィールド値をfalseに変更します。あなたは現在の問題を解決するために、そのフィールドに基づいて各アイテムの選択を表示する必要があります。 –

+0

実際のコードの結果はどうなりますか? – Cochi

答えて

0

まず、(あなたのPOJOクラスに一つの変数isSelectedを追加して、あなたはすべてのオプションを選択しながら、ループ内でのアイテムのリストを実行することにより、真のその変数を作成し、その後adapter.notifyDataSetChangedを呼び出します)。今度は、個々の項目を選択または選択解除すると、必要に応じてisSelected変数がtrueまたはfalseになり、notifyDataSetChanged()を呼び出すことを忘れないでください。準備できた。

0

このFastAdapterライブラリを使用することができます:https://github.com/mikepenz/FastAdapter。シングルセレクトは簡単ですが、すでに完了しています。複数選択の場合は、すべてのアイテムをループしてmAdapter.toggleSelection(position)に電話するだけです。選択したアイテムが必要なときは、簡単にmAdapter.getSelection()と呼ぶことができます。その簡単な、あなた自身を行う必要はありません

関連する問題