RecyclerView是Android开发中常用的列表控件,用于展示大量数据。适配器是RecyclerView的关键组件之一,用于将数据绑定到RecyclerView上。
在RecyclerView中,突出显示已单击或当前项目可以通过以下步骤实现:
以下是一个示例代码:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<String> data;
private int selectedItem = RecyclerView.NO_POSITION;
public MyAdapter(List<String> data) {
this.data = data;
}
@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) {
holder.textView.setText(data.get(position));
if (position == selectedItem) {
holder.itemView.setBackgroundColor(Color.YELLOW);
} else {
holder.itemView.setBackgroundColor(Color.WHITE);
}
}
@Override
public int getItemCount() {
return data.size();
}
public void setSelectedItem(int position) {
selectedItem = position;
notifyDataSetChanged();
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView textView;
public ViewHolder(@NonNull View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.text_view);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
int position = getAdapterPosition();
setSelectedItem(position);
}
}
}
在上述代码中,我们通过设置不同的背景色来突出显示已单击或当前项目。当用户点击某个项目时,会更新selectedItem的值,并调用notifyDataSetChanged方法来刷新列表。
推荐的腾讯云相关产品:腾讯云移动直播(https://cloud.tencent.com/product/mlvb)可以用于实时音视频直播,适用于直播、教育、电商等场景。
领取专属 10元无门槛券
手把手带您无忧上云