Использование setOnClickListener для фрагмента RecyclerView для перехода к другому виду деятельности - PullRequest
1 голос
/ 23 марта 2020

Я хочу (1) передать переменную позиции и (2) открыть новое действие при нажатии на элемент.

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

Хотя код ниже работает для регулярной_активности. java, для фрагмента не работает. java. Он полностью закрывает приложение, когда я открываю этот фрагмент.

@Override
public void onClick(View view) {
    Intent int_detail = new Intent(activity, bottom_nav_search_details.class);
    int_detail.putExtra("position", position);
    activity.startActivity(int_detail); }

На всякий случай, если кто-нибудь найдет что-нибудь полезное, вот более длинные строки кода. Когда я удаляю вышеуказанную часть (Intent part), все работает - журнал успешно показывает разные позиции, когда я нажимаю разные элементы.

private Activity activity;
@Override
public void onBindViewHolder(@NonNull ExampleViewHolder holder, final int position) {
    final ExampleItem currentItem = exampleList.get(position);

    holder.imageView.setImageResource(currentItem.getImageResource());
    holder.textView1.setText(currentItem.getText1());

    holder.parentLayout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Log.i(TAG, "Clicked " + position);
            Intent int_detail = new Intent(activity, bottom_nav_search_details.class);
            int_detail.putExtra("position", position);
            activity.startActivity(int_detail);
        }
    });
}
...