要实现Android RecyclerView选择器动态数据,可以按照以下步骤进行:
public class Item {
private String name;
private boolean isSelected;
public Item(String name) {
this.name = name;
this.isSelected = false;
}
public String getName() {
return name;
}
public boolean isSelected() {
return isSelected;
}
public void setSelected(boolean selected) {
isSelected = selected;
}
}
public class ItemAdapter extends RecyclerView.Adapter {
private List- itemList;
public ItemAdapter(List
- itemList) {
this.itemList = itemList;
}
@NonNull
@Override
public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
return new ItemViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
Item item = itemList.get(position);
holder.textView.setText(item.getName());
holder.itemView.setSelected(item.isSelected());
}
@Override
public int getItemCount() {
return itemList.size();
}
public class ItemViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private TextView textView;
public ItemViewHolder(@NonNull View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.textView);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
int position = getAdapterPosition();
if (position != RecyclerView.NO_POSITION) {
Item item = itemList.get(position);
item.setSelected(!item.isSelected());
notifyItemChanged(position);
}
}
}
}
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中的项时,项的isSelected属性会切换,并刷新项的显示状态。