RadioAdapter.java 3.02 KB
package com.studymachine.www.ui.adapter;

import android.content.Context;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.hjq.base.BaseAdapter;
import com.studymachine.www.R;
import com.studymachine.www.app.AppAdapter;
import com.studymachine.www.http.api.GetDictionariesApi;

import java.util.ArrayList;
import java.util.List;

/**
 *    desc   : 单选列表适配器
 */
public final class RadioAdapter extends AppAdapter<GetDictionariesApi.Bean> implements BaseAdapter.OnItemClickListener  {

    private  List<GetDictionariesApi.Bean> mSelectList=new ArrayList<>();

    private OnRadioListener mListener;
    public RadioAdapter(Context context, List<GetDictionariesApi.Bean> list) {
        super(context);
        mSelectList=list;
        setOnItemClickListener(this);
    }

    public RadioAdapter(Context context) {
        super(context);
        setOnItemClickListener(this);
    }



    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        return new ViewHolder();
    }

    @Override
    public void onItemClick(RecyclerView recyclerView, View itemView, int position) {
      List<GetDictionariesApi.Bean> mDataList=getData();
        if(mSelectList.size()==1){
            if(mSelectList.contains(mDataList.get(position))){
                return;
            }
            int index=mDataList.indexOf( mSelectList.remove(0));
            if(index!=-1){
                notifyItemChanged(index);
            }
        }
        mSelectList.add(mDataList.get(position));
        notifyItemChanged(position);
        if(mListener==null){
            return;
        }
        mListener.onItemClick(recyclerView,position,mSelectList);
    }

    private final class ViewHolder extends AppAdapter<?>.ViewHolder {
        private final ImageView mImageView;
        private final TextView mTextView;
        private ViewHolder() {
            super(R.layout.radio_item);
            mImageView = findViewById(R.id.bg_img);
            mTextView = findViewById(R.id.grade_text);
        }

        @Override
        public void onBindView(int position) {
            GetDictionariesApi.Bean nowItem=getItem(position);
            mTextView.setText(nowItem.getLabel());
            if(mSelectList.contains(nowItem)){
                mImageView.setImageResource(R.drawable.xuan);
                mTextView.setTextColor(getColor(R.color.color_68D5FB));
            }else{
                mImageView.setImageResource(R.drawable.xuan1);
            }
        }
    }

    public void setListener(OnRadioListener mListener) {
        this.mListener = mListener;
    }

    public  interface OnRadioListener {
        /**
         * 点击
         * @param position
         * @param mSelectList
         */
        void onItemClick(RecyclerView recyclerView,int position,List<GetDictionariesApi.Bean> mSelectList);
    }
}