You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.5 KiB
82 lines
2.5 KiB
package com.startsmake.llrisetabbardemo.adapter;
|
|
|
|
import android.content.Context;
|
|
import android.view.LayoutInflater;
|
|
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.startsmake.llrisetabbardemo.R;
|
|
import com.startsmake.llrisetabbardemo.model.Item;
|
|
|
|
import java.util.List;
|
|
|
|
public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.ViewHolder> {
|
|
|
|
private Context context;
|
|
private List<Item> itemList;
|
|
private OnItemClickListener listener;
|
|
|
|
public interface OnItemClickListener {
|
|
void onItemClick(Item item);
|
|
}
|
|
|
|
public ProductAdapter(Context context, List<Item> itemList, OnItemClickListener listener) {
|
|
this.context = context;
|
|
this.itemList = itemList;
|
|
this.listener = listener;
|
|
}
|
|
|
|
@NonNull
|
|
@Override
|
|
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
|
View view = LayoutInflater.from(context).inflate(R.layout.item_product, parent, false);
|
|
return new ViewHolder(view);
|
|
}
|
|
|
|
@Override
|
|
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
|
|
Item item = itemList.get(position);
|
|
|
|
holder.tvTitle.setText(item.getTitle());
|
|
holder.tvPrice.setText(String.format("¥%.2f", item.getPrice()));
|
|
holder.tvLocation.setText(item.getLocation());
|
|
|
|
// 设置发布时间
|
|
String time = android.text.format.DateFormat.format("MM-dd HH:mm", item.getPublishTime()).toString();
|
|
holder.tvTime.setText(time);
|
|
|
|
// 设置点击事件
|
|
holder.itemView.setOnClickListener(v -> {
|
|
if (listener != null) {
|
|
listener.onItemClick(item);
|
|
}
|
|
});
|
|
}
|
|
|
|
@Override
|
|
public int getItemCount() {
|
|
return itemList.size();
|
|
}
|
|
|
|
public static class ViewHolder extends RecyclerView.ViewHolder {
|
|
ImageView ivImage;
|
|
TextView tvTitle;
|
|
TextView tvPrice;
|
|
TextView tvLocation;
|
|
TextView tvTime;
|
|
|
|
public ViewHolder(@NonNull View itemView) {
|
|
super(itemView);
|
|
ivImage = itemView.findViewById(R.id.ivProductImage);
|
|
tvTitle = itemView.findViewById(R.id.tvProductTitle);
|
|
tvPrice = itemView.findViewById(R.id.tvProductPrice);
|
|
tvLocation = itemView.findViewById(R.id.tvProductLocation);
|
|
tvTime = itemView.findViewById(R.id.tvProductTime);
|
|
}
|
|
}
|
|
} |