Java View.OnClickListener未切换到其他活动

Java View.OnClickListener未切换到其他活动,java,android,onclicklistener,android-view,Java,Android,Onclicklistener,Android View,一直在尝试为College创建一个食品配送应用程序,而View.OnClickListener在Android Studio中变灰,因此,活动之间的切换似乎根本不起作用 摘自MainAdapter.java ... public class MainAdapter extends RecyclerView.Adapter<MainAdapter.viewholder> { ArrayList<MainModel> list ; Context cont

一直在尝试为College创建一个食品配送应用程序,而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扩展了RecyclerView.Adapter{
数组列表;
语境;
公共主适配器(ArrayList列表,上下文){
this.list=列表;
this.context=上下文;
}
@非空
@凌驾
public viewholder onCreateViewHolder(@NonNull ViewGroup parent,int viewType){
视图=LayoutFlater.from(context).充气(R.layout.sample\u mainfood,parent,false);
返回新的viewholder(视图);
}
@凌驾
public void onBindViewHolder(@NonNull viewholder,int位置){
最终MainModel模型=list.get(位置);
holder.foodimage.setImageResource(model.getImage());
holder.mainName.setText(model.getName());
holder.price.setText(model.getPrice());
holder.description.setText(model.getDescription());
holder.itemView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
意向意向=新意向(上下文,DetailActivity.class);
intent.putExtra(“image”,model.getImage());
intent.putExtra(“price”,model.getPrice());
intent.putExtra(“desc”,model.getDescription());
intent.putExtra(“name”,model.getName());
背景。开始触觉(意图);
}
});
});
}
以下是完整的MainAdapter.java文件:

您正在调用
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);
            }
        });

不幸的是,这样做没有帮助。你可以分享android studioyou的屏幕截图只是清理、投影和重建。它变灰的原因是因为它建议用lambda替换它。然而,这样做也不会改变活动。以下是示例_mainfood.xml: