package com.example.drink_order_system; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import java.util.ArrayList; public class BillAdapter extends RecyclerView.Adapter { private final ArrayList mList; private final LayoutInflater mLayoutInflater; private BillAdapter.OnItemClickListener itemClickListener; BillAdapter(LayoutInflater layoutInflater, ArrayList list) { this.mList = list; mLayoutInflater = layoutInflater; System.out.println("BillAdapter used"); } @NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { return new BillAdapter.BillViewHolder( mLayoutInflater.inflate(R.layout.order_item, viewGroup, false)); } private Order getItem(int position) { return mList.get(position); } public void setOnItemClickListener(BillAdapter.OnItemClickListener listener) { this.itemClickListener = listener; } @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { Order target = getItem(position); if (holder instanceof BillAdapter.BillViewHolder) { ((BillAdapter.BillViewHolder) holder).bindBean(target); // 设置点击事件监听器 holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (itemClickListener != null) { itemClickListener.onItemClick(v, position); } } }); } else { throw new IllegalStateException("Illegal state Exception onBindviewHolder"); } } public interface OnItemClickListener { void onItemClick(View view, int position); } @Override public int getItemCount() { return mList.size(); } private class BillViewHolder extends RecyclerView.ViewHolder { private final TextView TV_number; private final TextView TV_time; private final TextView TV_takeAway; private final TextView TV_cost; BillViewHolder(View itemView) { super(itemView); TV_number = (TextView) itemView.findViewById(R.id.textView_number); TV_time = (TextView) itemView.findViewById(R.id.textView_time); TV_takeAway = (TextView) itemView.findViewById(R.id.textView_takeAway); TV_cost = (TextView) itemView.findViewById(R.id.textView_cost); } void bindBean(final Order bean) { TV_number.setText("订单编号:"+bean.getOrder_number()); TV_time.setText(bean.getTime()); if(bean.getTakeAway().equals("1")) { TV_takeAway.setText("外带"); } else { TV_takeAway.setText("堂食"); } TV_cost.setText("总价:¥ "+bean.getCost()); } } }