Позиция от адаптеров onBindViewHolder не отображается в тосте - PullRequest
0 голосов
/ 22 февраля 2020

Итак, я пытаюсь напечатать позицию из onBindViewHolder, но мой тост пуст.

public void onBindViewHolder(@NonNull MyViewHolder holder, final int position) {
....
holder.mainLayout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ....
                intent.putExtra("position", position);
                context.startActivity(intent);
            }
        });
}

Все это в итоге напечатано в тосте в моем MainActivity

String pos = getIntent().getStringExtra("position");
Toast.makeText(this, pos, Toast.LENGTH_SHORT).show();

Я не могу найти вопрос о том, как получить значение позиции функции onBindViewHolder.

Ответы [ 3 ]

0 голосов
/ 22 февраля 2020

Любое другое дочернее представление этого же родителя может быть доступно из v.

У меня есть EditText & Button подряд, когда я нажимаю на кнопку под кодом, я получу значение EditText для перехода к другому действию. , Таким образом, я могу отправить идентификатор строки.

ConstraintLayout layout = (ConstraintLayout)v.getParent();
intent.putExtra("editTextValue", ((EditText)layout.getChildAt(0)).getText());
            context.startActivity(intent);
0 голосов
/ 22 февраля 2020

Просто измените позицию на строковое значение одной строкой кода -

intent.putExtra("position", position+"");
0 голосов
/ 22 февраля 2020

Измените таким образом ваш код

String pos = getIntent().getIntExtra("position",0).toString();
Toast.makeText(this, pos, Toast.LENGTH_SHORT).show();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...