我需要在我的 RecyclerView(firestore) 适配器中设置一个 setonclick 侦听器,我要在单击时显示的活动是 RestaurantDetails,我需要单击餐厅卡并定向到包含餐厅详细信息的页面
public class RestaurantAdapter extends FirestoreRecyclerAdapter<Restaurant, RestaurantAdapter.ViewHolder> {
private Activity activity;
public RestaurantAdapter(@NonNull FirestoreRecyclerOptions<Restaurant> options, Activity activity) {
super(options);
this.activity = activity;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.restaurant_card, parent, false);
return new ViewHolder(view);
}
@Override
protected void onBindViewHolder(@NonNull ViewHolder holder, int position, @NonNull Restaurant model) {
holder.name.setText(model.getName());
holder.phone.setText(model.getPhone());
holder.category.setText(model.getCategory());
holder.address.setText(model.getAddress());
// here i should implement it i guess
}
static class ViewHolder extends RecyclerView.ViewHolder {
TextView name, phone, category, address, averageRating;
public ViewHolder(View itemView) {
super(itemView);
name = itemView.findViewById(R.id.textViewName);
phone = itemView.findViewById(R.id.textViewPhone);
category = itemView.findViewById(R.id.textViewCategory);
address = itemView.findViewById(R.id.textViewAddress);
averageRating = itemView.findViewById(R.id.textViewAverageRating);
}
}
}
想过类似的事情,但没有成功
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent restaurantIntent = new Intent(RestaurantAdapter.this, RestaurantDetailActivity.class);
startActivity(restaurantIntent);
}
});
}
如果您已经引用了 Activity,请尝试以下操作:
// onBindViewHolder
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent restaurantIntent = new Intent(activity, RestaurantDetailActivity.class);
activity.startActivity(restaurantIntent);
}
});
}