我在回收站视图中有一个itemClickListener
,我想从中查看练习页面。
这是我的代码;
public void onBindViewHolder(@NonNull RecyclerViewHolder holder, int position) {
holder.image.setImageResource(exerciseList.get(position).getImage_id());
holder.text.setText(exerciseList.get(position).getName());
holder.setItemClickListener(new ItemClickListener() {
@Override
public void onClick(View view, int position) {
Intent intent = new Intent(context, ViewExercise.class);
intent.putExtra("image_id", exerciseList.get(position).getImage_id());
intent.putExtra("name", exerciseList.get(position).getName());
context.startActivity(intent);
}
});
}
但是,它说上下文需要FLAG_ACTIVITY_NEW_TASK标志。
您能帮忙吗?
答案 0 :(得分:1)
在addFlags
类中使用Intent
方法,如下所示:
Intent intent = new Intent(context, ViewExercise.class);
intent.putExtra("image_id", exerciseList.get(position).getImage_id());
intent.putExtra("name", exerciseList.get(position).getName());
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
答案 1 :(得分:1)
如果您使用的context
变量不是Activity
(即您使用过getApplicationContext()
),则会出现此错误。
如果要从活动中启动活动(就像单击RecyclerView
一样,则应该使用活动作为上下文,或者使用this
,{{1} },甚至只是使用通过YourActivityClass.this
附加到视图的上下文,而不是应用程序上下文。