上下文需要FLAG_ACTIVITY_NEW_TASK标志

时间:2018-09-21 17:01:59

标签: android sqlite android-activity

我在回收站视图中有一个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标志。

您能帮忙吗?

2 个答案:

答案 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附加到视图的上下文,而不是应用程序上下文。