GradeAdapter.java 2.45 KB
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<RecyclerView.ViewHolder> {
    private List<String> list;
    private Filter filter;
    private Context context;
    private String key;

    public interface Filter {
        void onSelect(String select);
    }

    public GradeAdapter(Context context, Filter filter, List<String> 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;
        }
    }
}