checkbox
のチェック項目を選択しようとしているため、チェックボックスをオンにしてサーバーに送信します。Android:RecyclerViewのChecked項目を取得してサーバーに送信する方法
私のアダプタは次のとおりです。
public class FollowTopicsAdapter extends RecyclerView.Adapter<FollowTopicsAdapter.MyViewHolder> {
ArrayList<String> topics_title, topics_id;
ArrayList<String> checked_items= new ArrayList<>();
Context context;
LinearLayout linearLayout;
CheckBox checkBox;
public FollowTopicsAdapter(Context context, ArrayList<String> topics_title, ArrayList<String> topics_id){
this.topics_title=topics_title;
this.context=context;
this.topics_id=topics_id;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_for_follow_topics,parent,false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(final MyViewHolder holder, final int position) {
holder.checkBox.setText(topics_title.get(position));
holder.checkBox.setTag(topics_title.get(position));
holder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if(b)
{
checked_items.add(position,topics_id.get(position));
holder.checkBox.setChecked(b);
linearLayout.setBackgroundResource(R.drawable.checked);
}
else
{
checked_items.remove(position);
holder.checkBox.setChecked(b);
linearLayout.setBackgroundResource(R.drawable.custom_checkbox);
}
}
});
}
@Override
public int getItemCount() {
return topics_title.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
CheckBox checkBox;
public MyViewHolder(View view) {
super(view);
linearLayout=(LinearLayout)itemView.findViewById(R.id.linearLayout);
checkBox= (CheckBox)itemView.findViewById(R.id.checkbox);
}
}
}
だからあなたの質問は何ですが? – Egor
アイテムをチェックすると、特定の位置にアイテムを追加する必要はありません。そのトピックIDを追加するだけで、そのトピックIDを削除する必要があります。 このリストにはチェックされたトピックが含まれています。 – user3024215
@エゴル:私はリサイクラービューの項目をクリックすることができません –