package com.xwad.os.adapter; import android.content.Context; import android.graphics.Paint; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.xwad.os.R; import com.xwad.os.bean.VipInfo; import java.util.List; import java.util.Objects; public class VipAdapter extends RecyclerView.Adapter { private Context mContext; private List mVipInfos; private String mSelectId = ""; public void setVipInfos(List vipInfos) { mVipInfos = vipInfos; notifyDataSetChanged(); } public interface VipSelectListener { void onVipSelect(VipInfo vipInfo); } private VipSelectListener mVipSelectListener; public void setVipSelectListener(VipSelectListener vipSelectListener) { mVipSelectListener = vipSelectListener; } @NonNull @Override public VipHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { mContext = parent.getContext(); return new VipHolder(LayoutInflater.from(mContext).inflate(R.layout.item_vip, parent, false)); } @Override public void onBindViewHolder(@NonNull VipHolder holder, int position) { VipInfo vipInfo = mVipInfos.get(position); String id = vipInfo.getId(); String name = vipInfo.getName(); int year = vipInfo.getYear(); String price = vipInfo.getPrice(); String origin_price = vipInfo.getOrigin_price(); holder.tv_combo_name.setText(name); holder.tv_year.setText(String.format(mContext.getString(R.string.validity_period), year)); holder.tv_price.setText("现价:¥" + price); holder.tv_origin_price.setText("原价:¥" + origin_price); holder.tv_origin_price.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG | Paint.ANTI_ALIAS_FLAG); holder.root.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { mSelectId = id; if (mVipSelectListener != null) { mVipSelectListener.onVipSelect(vipInfo); } notifyDataSetChanged(); } }); if (Objects.equals(mSelectId, id)) { holder.root.setBackground(mContext.getDrawable(R.drawable.bg_vip_select)); } else { holder.root.setBackground(mContext.getDrawable(R.drawable.bg_vip_unselect)); } } @Override public int getItemCount() { return mVipInfos == null ? 0 : mVipInfos.size(); } public class VipHolder extends RecyclerView.ViewHolder { LinearLayout root; TextView tv_combo_name, tv_year, tv_price, tv_origin_price; public VipHolder(@NonNull View itemView) { super(itemView); root = itemView.findViewById(R.id.root); tv_combo_name = itemView.findViewById(R.id.tv_combo_name); tv_year = itemView.findViewById(R.id.tv_year); tv_price = itemView.findViewById(R.id.tv_price); tv_origin_price = itemView.findViewById(R.id.tv_origin_price); } } }