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.
152 lines
5.4 KiB
152 lines
5.4 KiB
package com.example.drink_order_system;
|
|
|
|
import android.content.Intent;
|
|
import android.graphics.Bitmap;
|
|
import android.graphics.BitmapFactory;
|
|
import android.os.AsyncTask;
|
|
import android.util.Log;
|
|
import android.view.LayoutInflater;
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
import android.widget.Button;
|
|
import android.widget.ImageView;
|
|
import android.widget.TextView;
|
|
|
|
import androidx.recyclerview.widget.RecyclerView;
|
|
|
|
import com.squareup.picasso.Picasso;
|
|
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
import java.net.URL;
|
|
import java.util.ArrayList;
|
|
|
|
public class RestaurantAdapter extends RecyclerView.Adapter<RestaurantAdapter.RestaurantViewHolder> {
|
|
private ArrayList<Restaurant> mList;
|
|
private final LayoutInflater mLayoutInflater;
|
|
private MyClickListener mListener;
|
|
private OnItemClickListener itemClickListener;
|
|
|
|
|
|
public RestaurantAdapter(LayoutInflater layoutInflater, ArrayList<Restaurant> mList) {
|
|
this.mList = mList;
|
|
mLayoutInflater = layoutInflater;
|
|
}
|
|
|
|
@Override
|
|
public RestaurantViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
|
View itemView = mLayoutInflater.inflate(R.layout.restaurant_item, parent, false);
|
|
return new RestaurantViewHolder(itemView);
|
|
}
|
|
|
|
@Override
|
|
public void onBindViewHolder(RestaurantViewHolder holder, int position) {
|
|
|
|
Restaurant target = getItem(position);
|
|
if (holder instanceof RestaurantAdapter.RestaurantViewHolder) {
|
|
((RestaurantAdapter.RestaurantViewHolder) holder).bindBean(target);
|
|
|
|
|
|
} else {
|
|
throw new IllegalStateException("Illegal state Exception onBindviewHolder");
|
|
}
|
|
|
|
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
|
public void onClick(View v) {
|
|
if (itemClickListener != null) {
|
|
itemClickListener.onItemClick(v, holder.getAdapterPosition());
|
|
}
|
|
}
|
|
});
|
|
|
|
new AsyncTask<Void, Void, Bitmap>() {
|
|
@Override
|
|
protected Bitmap doInBackground(Void... voids) {
|
|
try {
|
|
URL url = new URL(target.get_imagePath());
|
|
return BitmapFactory.decodeStream(url.openConnection().getInputStream());
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
return null;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
protected void onPostExecute(Bitmap bitmap) {
|
|
if (bitmap != null) {
|
|
holder.imageView.setImageBitmap(bitmap);
|
|
}
|
|
}
|
|
}.execute();
|
|
Log.e("imagepath1",target.get_imagePath());
|
|
}
|
|
|
|
public void buttonSetOnClick(MyClickListener mListener) {
|
|
this.mListener = mListener;
|
|
}
|
|
|
|
public void setRestaurantList(ArrayList<Restaurant> newList) {
|
|
mList = newList;
|
|
notifyDataSetChanged(); // 通知适配器数据已更改
|
|
}
|
|
|
|
public interface MyClickListener {
|
|
void onclick(View v, int position);
|
|
}
|
|
public interface OnItemClickListener {
|
|
void onItemClick(View view, int position);
|
|
}
|
|
public void setOnItemClickListener(OnItemClickListener listener) {
|
|
this.itemClickListener = listener;
|
|
}
|
|
private Restaurant getItem(int position) {
|
|
return mList.get(position);
|
|
}
|
|
|
|
@Override
|
|
public int getItemCount() {
|
|
return mList.size();
|
|
}
|
|
|
|
class RestaurantViewHolder extends RecyclerView.ViewHolder {
|
|
private final TextView name;
|
|
private final TextView introduction;
|
|
private final TextView volume;
|
|
private final ImageView imageView;
|
|
RestaurantViewHolder(View itemView) {
|
|
super(itemView);
|
|
name = itemView.findViewById(R.id.Text_name);
|
|
introduction = itemView.findViewById(R.id.Text_introduction);
|
|
volume = itemView.findViewById(R.id.Text_volume);
|
|
imageView = itemView.findViewById(R.id.Text_image);
|
|
/*itemView.setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
|
public void onClick(View v) {
|
|
// 获取当前位置的店铺对象
|
|
Restaurant clickedRestaurant = getItem(getAdapterPosition());
|
|
|
|
// 根据 clickedRestaurant 的信息跳转到对应的店铺页面
|
|
// 这里你可以使用 Intent 或其他导航方式来实现跳转
|
|
// 例如:
|
|
// Intent intent = new Intent(itemView.getContext(), ShopActivity.class);
|
|
// intent.putExtra("restaurantId", clickedRestaurant.getId());
|
|
// itemView.getContext().startActivity(intent);
|
|
Intent intent = new Intent(itemView.getContext(), OrderActivity.class);
|
|
itemView.getContext().startActivity(intent);
|
|
}
|
|
});*/
|
|
}
|
|
|
|
void bindBean(final Restaurant bean) {
|
|
name.setText(bean.get_name());
|
|
introduction.setText(bean.get_introduction());
|
|
volume.setText(String.format("¥ %d", (bean.get_volume())));
|
|
// Picasso.get().load(bean.get_imagePath()).into(imageView);
|
|
Log.e("imagepath2",bean.get_imagePath());
|
|
}
|
|
}
|
|
}
|
|
|
|
|