java - 如何在 myadapter 中启动新 Intent

标签 java android

我正在创建一个食品食谱应用程序,我需要帮助在我的适配器.类中启动一个新 Intent 。我知道通常您在默认构造函数中使用 Context 上下文,然后您就可以启动 Activity 。

我尝试在我的构造函数中使用 Context 但我不能

我的适配器

public class Myadapter extends FirestoreRecyclerAdapter<Note, Myadapter.MyHolder> {


    public Myadapter(@NonNull FirestoreRecyclerOptions<Note> options) {
        super(options);
    }

    @Override
    protected void onBindViewHolder(@NonNull MyHolder holder, int position, @NonNull Note model) {
        holder.textViewname.setText(model.getNamerecipe());
        holder.textViewinfo.setText(model.getInforecipe());

        final String getname = holder.textViewname.getText().toString();




    }

    @NonNull
    @Override
    public MyHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview, parent, false);
        return new MyHolder(v);
    }

    class MyHolder extends RecyclerView.ViewHolder{
        TextView textViewinfo;
        TextView textViewname;
        ImageView imageView;
        Context context;

        public MyHolder(@NonNull View itemView) {
            super(itemView);
            textViewinfo = itemView.findViewById(R.id.text_view_desciption);
            textViewname = itemView.findViewById(R.id.text_view_title);
            imageView = itemView.findViewById(R.id.Imageview);



            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(context, Recipeinfo.class);
                    context.startActivity(intent);
                }
            });

        }
    }

}

如果有人能帮助我那就太好了,

最佳答案

您可以从 View 本身获取上下文,执行以下操作:

itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(v.getContext(), Recipeinfo.class);
            context.startActivity(intent);
        }
    });

并且 context 应该位于 Adapter 的构造函数中。

private Context mContext;
public Myadapter(@NonNull FirestoreRecyclerOptions<Note> options, Context context) {
super(options);
this.mContext = context;
}

关于java - 如何在 myadapter 中启动新 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55364999/

相关文章:

java - 替换 jar 文件中文件夹内的类文件

java - 使用 include 指令时 JSP 编译错误

java - 如何根据桌面上的触摸屏要求增加 jspinner 箭头的大小

java - 将有用的状态信息传递给 Java 中的异常的好方法是什么?

android - 带有固定部分标题的 PullToRefresh 列表

android - 查找对特定 android sdk 级别的所有调用

java - JSF 语言环境问题

java - 看来 ImageView.setImageBitmap 不起作用

android - (Glide) 从缓存中获取图像(如果存在)

android - 仅在 android 上显示的 div