контекст требует флаг FLAG_ACTIVITY_NEW_TASK - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть 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 голосов
/ 21 сентября 2018

Вы получаете эту ошибку, когда используемая вами переменная context не является Activity (т. Е. Вы использовали getApplicationContext().

Если вы запускаете действие из действия (Как и при нажатии RecyclerView, вы должны использовать Activity в качестве контекста, либо используя this, YourActivityClass.this, либо даже просто используя контекст, присоединенный к вашему представлению через view.getContext(), а не контекст приложения..

0 голосов
/ 21 сентября 2018

Используйте 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...