From 8d3d6e95aa7acb923cf3ae901e03b22b547ca495 Mon Sep 17 00:00:00 2001 From: puem2gl9z <2777269348@qq.com> Date: Fri, 30 Aug 2024 15:38:42 +0800 Subject: [PATCH] ADD file via upload --- LeftAdapter.java | 132 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 LeftAdapter.java diff --git a/LeftAdapter.java b/LeftAdapter.java new file mode 100644 index 0000000..a6dc77e --- /dev/null +++ b/LeftAdapter.java @@ -0,0 +1,132 @@ +package com.example.drink_order_system; + +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import java.util.ArrayList; + +public class LeftAdapter extends RecyclerView.Adapter { + + private ArrayList mList; + private OnItemClickListener onItemClickListener; + + public LeftAdapter( ArrayList list) { + this.mList = list; + + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.onItemClickListener = onItemClickListener; + } + + private LeftBean getItem(int position) { + return mList.get(position); + } + + @Override + public LeftViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view= LayoutInflater.from(parent.getContext()) + .inflate(R.layout.left_list_item,parent,false); + + return new LeftViewHolder(view); + + } + + @Override + public void onBindViewHolder(LeftViewHolder holder, int position) { + LeftBean target = getItem(holder.getAdapterPosition()); + if (holder instanceof LeftAdapter.LeftViewHolder) { + ((LeftAdapter.LeftViewHolder) holder).bindBean(target); + //绑定监听事件 + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + Log.v("onClick",holder.getAdapterPosition()+"\t"); + if (onItemClickListener != null){ + onItemClickListener.onItemClicked(getItem(holder.getAdapterPosition()).getRightPosition()); + } + for (LeftBean bean:mList){ + bean.setSelect(false); + } + getItem(holder.getAdapterPosition()).setSelect(true); + notifyDataSetChanged(); + } + }); + } else { + throw new IllegalStateException("Illegal state Exception onBindviewHolder"); + } + } + + @Override + public int getItemCount() { + return mList.size(); + } + + public static class LeftViewHolder extends RecyclerView.ViewHolder { + private final TextView tvTitle; + //private View cl_left_item; + + LeftViewHolder(View itemView) { + super(itemView); + tvTitle = (TextView) itemView.findViewById(R.id.TV_drink_type); + } + + void bindBean(LeftBean target) + { + tvTitle.setText(target.getTitle()); + if (target.isSelect()){ + itemView.setBackgroundColor(ContextCompat.getColor(itemView.getContext(), R.color.gray)); + } else { + itemView.setBackgroundColor(ContextCompat.getColor(itemView.getContext(), R.color.white)); + } + } + } + + interface OnItemClickListener { + void onItemClicked(int rightPosition); + } + + public void setCurrentPosition(int rightPosition){ + for (int i = 0; i < mList.size(); i++){ + LeftBean bean = mList.get(i); + if(i < mList.size()-1) + { + LeftBean nextBean = mList.get(i+1); + if (bean.getRightPosition() <= rightPosition && rightPosition < nextBean.getRightPosition()){ + bean.setSelect(true); + } else { + bean.setSelect(false); + } + } + else + { + if(bean.getRightPosition() <= rightPosition) + { + bean.setSelect(true); + } + else { + bean.setSelect(false); + } + } + } + notifyDataSetChanged(); + } + + public String getCurrentTitle(){ + String currentTitle = ""; + for (LeftBean bean:mList){ + if (bean.isSelect()){ + currentTitle = bean.getTitle(); + break; + } + } + return currentTitle; + } +} \ No newline at end of file