从适配器RecyclerView向另一个活动传递/获取值复选框的方法有多种。以下是一种常见的实现方式:
public class MyViewHolder extends RecyclerView.ViewHolder {
CheckBox checkBox;
public MyViewHolder(View itemView) {
super(itemView);
checkBox = itemView.findViewById(R.id.checkbox);
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// 在这里处理复选框状态变化的逻辑
}
});
}
}
private HashMap<Integer, Boolean> checkedItems = new HashMap<>();
// 在适配器的onBindViewHolder方法中设置复选框的状态
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
// 设置复选框状态
holder.checkBox.setChecked(checkedItems.get(position));
// 其他绑定数据的操作
}
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int position = getAdapterPosition();
checkedItems.put(position, isChecked);
}
});
public List<DataItem> getSelectedItems() {
List<DataItem> selectedItems = new ArrayList<>();
for (Map.Entry<Integer, Boolean> entry : checkedItems.entrySet()) {
if (entry.getValue()) {
selectedItems.add(dataList.get(entry.getKey()));
}
}
return selectedItems;
}
MyAdapter adapter = new MyAdapter(dataList);
recyclerView.setAdapter(adapter);
// 在需要的时候获取选中的数据项
List<DataItem> selectedItems = adapter.getSelectedItems();
这种方法通过监听复选框的状态变化,将选中的数据项保存在适配器中,并提供了一个公共方法来获取选中的数据项。这样就可以从适配器RecyclerView向另一个活动传递/获取值复选框的状态了。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云