在Android中使用RecyclerView来展示数据是一种常见的做法,以下是一个解决Android RecyclerView项目选择问题的示例代码。
public class Item {
private String name;
private boolean isSelected;
public Item(String name) {
this.name = name;
this.isSelected = false;
}
// Getter and setter methods
// ...
}
public class ItemAdapter extends RecyclerView.Adapter {
private List- itemList;
public ItemAdapter(List
- itemList) {
this.itemList = itemList;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
Item item = itemList.get(position);
holder.nameTextView.setText(item.getName());
holder.checkBox.setChecked(item.isSelected());
holder.itemView.setOnClickListener(v -> {
item.setSelected(!item.isSelected());
holder.checkBox.setChecked(item.isSelected());
});
}
@Override
public int getItemCount() {
return itemList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
TextView nameTextView;
CheckBox checkBox;
public ViewHolder(@NonNull View itemView) {
super(itemView);
nameTextView = itemView.findViewById(R.id.nameTextView);
checkBox = itemView.findViewById(R.id.checkBox);
}
}
}
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerView;
private ItemAdapter itemAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
List- itemList = new ArrayList<>();
itemList.add(new Item("Item 1"));
itemList.add(new Item("Item 2"));
itemList.add(new Item("Item 3"));
// 添加更多的项
itemAdapter = new ItemAdapter(itemList);
recyclerView.setAdapter(itemAdapter);
}
}
以上示例代码演示了如何使用RecyclerView来展示一组数据,并且实现了选择项目的功能。每个项目都有一个复选框,当点击项目时,复选框的选中状态会切换。你可以根据自己的需求进行修改和扩展。