我正在创建一个食品食谱应用程序,我需要帮助在我的适配器.类中启动一个新 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/