RecyclerViewアイテムのセレクタバックグラウンドを追加しましたが、一度に1つのアイテム選択だけを許可する必要があります。 1つのアイテムが選択された場合、残りのアイテムはすべて選択されてはならない。どうすればこれを達成できますか?ここで Recyclerview単一アイテムセレクタ
は私のアダプタクラスであるpublic class VisaTypeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context context;
private List<VisaType> visaTypeList;
int selected_position;
public VisaTypeAdapter(Context context, List<VisaType> visaTypeList) {
this.context = context;
this.visaTypeList = visaTypeList;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.visa_type_row, parent, false);
return new jp.workjapan.adapters.VisaTypeAdapter.ViewHolder(view);
}
@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) {
final VisaType a = visaTypeList.get(position);
final jp.workjapan.adapters.VisaTypeAdapter.ViewHolder viewHolder = (jp.workjapan.adapters.VisaTypeAdapter.ViewHolder) holder;
viewHolder.visa_eng.setText(a.getName_en());
viewHolder.visa_jp.setText(a.getName_jp());
final long id = a.getId();
if (id == AppSingleTon.visaType) {
viewHolder.visa_layout.setSelected(true);
} else {
viewHolder.visa_layout.setSelected(false);
}
viewHolder.visa_layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (viewHolder.visa_layout.isSelected()) {
viewHolder.visa_layout.setSelected(false);
} else {
viewHolder.visa_layout.setSelected(true);
AppSingleTon.visaType = id;
selected_position = position;
}
}
});
}
}
...それはあなたのお役に立てば幸いですか!もしそうなら、 'android.R.layout.select_dialog_singlechoice'レイアウトの' ArrayAdapter'を使うべきです。 –
[RecyclerViewでの単一選択](https://stackoverflow.com/questions/28972049/single-selection-in-recyclerview)の可能な複製 –