Как получить контекст в обзоре переработчика - PullRequest
0 голосов
/ 30 марта 2020

У меня есть просмотрщик и я хочу открыть новый вид деятельности, показывающий полную информацию об элементе, по которому щелкнули. Это код, который у меня есть для setOnItemClickListener, Toast работает нормально и правильно отображает имя элемента, но не открывает новое действие и регистрирует эту ошибку: W / ActivityThread: handleWindowVisibility: нет действия для токена android .os. BinderProxy@dcc4899

adapter.setOnItemClickListener(new AdapterView.OnClickListener() {

        @Override
        public void onClick(View v) {

            int pos = recyclerViewFestivales.getChildAdapterPosition(v);
            Festival festivalSeleccionado = listaFestivales.get(pos);
            String nombreFestival = listaFestivales.get(pos).getNombre();

            Toast.makeText(getApplicationContext(), "seleccion: " + nombreFestival, Toast.LENGTH_SHORT).show();

            // Intent
            Intent intent = new Intent(v.getContext(), FestivalActivity.class);
            intent.putExtra("nombreFestival", nombreFestival);
            startActivity(intent);
        }
    });

Я читал в другой статье, что вы не можете получить контекст в onCreat, я не знаю, есть ли ошибка или как могу я решить это ...

Ответы [ 2 ]

1 голос
/ 30 марта 2020

В этом случае просто укажите имя вашей активности вместо v.getContext (). Как это:

Intent intent = new Intent(FromActivity.this, FestivalActivity.class);
0 голосов
/ 30 марта 2020

Я считаю, что следующие шаги должны работать.

  1. Создайте переменную частного контекста в классе адаптера recyclerview.
  2. Измените конструктор recyclerview так, чтобы он принимал параметр Context и Инициализирует частную переменную Context для данного параметра.
  3. Используйте только что созданный контекстный параметр в Intent.
  4. При вызове конструктора recyclerview из другого класса просто передайте "this" в качестве параметра Context.

Код:

1.

private Context mContext;

2.

    public YourRecyclerViewAdapter(Context context) {
    this.mContext = context;
}

3.

Intent intent = new Intent(mContext, YourActivity.class);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...