package com.hjx.parent.adapter; import android.content.Context; import android.graphics.Color; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.hjx.parent.R; import com.hjx.parent.databinding.ItemFilterTextBinding; import java.util.List; public class GradeAdapter extends RecyclerView.Adapter { private List list; private Filter filter; private Context context; private String key; public interface Filter { void onSelect(String select); } public GradeAdapter(Context context, Filter filter, List list, String key) { this.context = context; this.filter = filter; this.list = list; this.key = key; } public void refresh( String key) { this.key = key; notifyDataSetChanged(); } @NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { ItemFilterTextBinding itemFilterBinding = ItemFilterTextBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false); return new FilterHolder(itemFilterBinding); } @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) { FilterHolder holder = (FilterHolder) viewHolder; String value = list.get(i); holder.binding.tvFilter.setText(value); if (key.contains(value)) { holder.binding.tvFilter.setTextColor(Color.WHITE); holder.binding.tvFilter.setBackgroundResource(R.drawable.bg_soild_blue_25); } else { holder.binding.tvFilter.setTextColor(context.getColor(R.color.text_title)); holder.binding.tvFilter.setBackgroundResource(R.drawable.bg_solid_btn_grad); } holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { filter.onSelect(value); } }); } @Override public int getItemCount() { return list.size(); } static class FilterHolder extends RecyclerView.ViewHolder { ItemFilterTextBinding binding; public FilterHolder(@NonNull ItemFilterTextBinding itemView) { super(itemView.getRoot()); binding = itemView; } } }