Вложенный RecyclerView OnClickListener не распознает список правильно - PullRequest
0 голосов
/ 02 августа 2020
• 1000 (ArrayList) - это не тот, на котором я щелкнул.

Реализация onclickListener:

в HorizontalAdapter (внутренний recyclerview):

  private OnItemClickListener mItemClickListener;
    public interface OnItemClickListener {
        void onItemClick(View view, int position, int parentPosition);
        void onItemLongClick(View view, int position);
    }

    // for both short and long click
    public void SetOnItemClickListener(final OnItemClickListener mItemClickListener) {
        this.mItemClickListener = mItemClickListener;
    }

и в viewHolder I реализовал onclick, как показано ниже (здесь я получаю неправильные параметры. Я получаю параметры правильно, но после нескольких раз изменения параметров клавиатуры он явно сбивает с толку)

  relativeLayout.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // Triggers click upwards to the adapter on click
                    if (mItemClickListener != null) {
                       int position = getAdapterPosition();
                       mItemClickListener.onItemClick(relativeLayout, position, positionHashmap.get(options.get(position).getKey()));
                    } }});

в вертикальном адаптере viewHolder я вызываю onClickListener adapter.SetOnItemClickListener(mItemClickListener); и вот этот метод, который будет вызываться из Activity

public void setOnItemClickListener(final BotItemHorizontalAdapter.OnItemClickListener itemClickListener) {
        this.mItemClickListener = itemClickListener;
    }

, наконец, вот как я вызываю onclickListener из Activity:

 verticalAdapter.setOnItemClickListener(new HorizontalAdapter.OnItemClickListener() {
            @Override
            public void onItemClick(View view, int position, int parentPosition) {
            }

            @Override
            public void onItemLongClick(View view, int position) {

            }
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...