diff --git a/BillAdapter.java b/BillAdapter.java new file mode 100644 index 0000000..ec04373 --- /dev/null +++ b/BillAdapter.java @@ -0,0 +1,88 @@ +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()); + } + } +}