View.OnClickListener未切换到其他活动



一直试图创建一个送餐应用程序作为colleege和View.OnClickListener在Android Studio中变灰,因此,活动之间的切换似乎根本不起作用。

摘自MainAdapter.java

...
public class MainAdapter extends RecyclerView.Adapter<MainAdapter.viewholder> {
ArrayList<MainModel> list ;
Context context;
public MainAdapter(ArrayList<MainModel> list, Context context) {
this.list = list;
this.context = context;
}
@NonNull
@Override
public viewholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.sample_mainfood , parent , false);
return new viewholder(view);
}
@Override
public void onBindViewHolder(@NonNull viewholder holder, int position) {
final MainModel model = list.get(position);
holder.foodimage.setImageResource(model.getImage());
holder.mainName.setText(model.getName());
holder.price.setText(model.getPrice());
holder.description.setText(model.getDescription());
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, DetailActivity.class);
intent.putExtra("image", model.getImage());
intent.putExtra("price", model.getPrice());
intent.putExtra("desc", model.getDescription());
intent.putExtra("name", model.getName());
context.startActivity(intent);
}
});
});
}

以下是完整的MainAdapter.java文件:https://pastebin.com/F7TWa3nf

您正在调用holder.itemView,但itemView未在viewholder类中定义。

你可以使用

holder.foodimage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, DetailActivity.class);
intent.putExtra("image", model.getImage());
intent.putExtra("price", model.getPrice());
intent.putExtra("desc", model.getDescription());
intent.putExtra("name", model.getName());
context.startActivity(intent);
}
});

最新更新