onItemClick возвращает разные значения - PullRequest
0 голосов
/ 29 июня 2018

У меня есть этот ViewHolder в моем адаптере.

public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
        ImageView optionImage;
        ImageView optionAddFavorites;
        BMLTextView optionText;
        RelativeLayout lay_icon;

        ViewHolder(View itemView) {
            super(itemView);
            optionImage = (ImageView) itemView.findViewById(R.id.img_option);
            optionAddFavorites = (ImageView) itemView.findViewById(R.id.iv_add_favorites);
            optionText = (BMLTextView) itemView.findViewById(R.id.txt_option_description);
            lay_icon = (RelativeLayout) itemView.findViewById(R.id.lay_icon);

            itemView.setOnClickListener(this);

            this.setIsRecyclable(false);
        }

        @Override
        public void onClick(View view) {
            if (mClickListener != null) mClickListener.onItemClick(view, getAdapterPosition());
        }
    }

Позже в своей Деятельности я реализовал:

public class OperateOptionSectionItemHelperImpl
        implements OperateOptionRVAdapter.ItemClickListener, OperateOptionSectionItemHelper {

Я сделал переопределение метода onItemClick, как показано ниже:

@Override
    public void onItemClick(View view, int position) {
    if (isEditingFavorites) {

        switch (view.getId()) {

            case R.id.iv_add_favorites:
                Log.e("onItemClick", "Add to favorites iv_add_favorites: " + R.id.iv_add_favorites + " parent: " + view.getId());

                break;
            case R.id.img_option:
                Log.e("onItemClick", "Add to favorites img_option: " + R.id.img_option + " parent: " + view.getId());

                break;

            default:
                Log.e("onItemClick", "Default");

        }

    } else {
        Log.e("onItemClick", "Rest of the view");

        }
    }
}

Я не получаю щелчок по идентификатору представления ... Что я делаю не так?

1 Ответ

0 голосов
/ 29 июня 2018

это потому, что вы устанавливаете ClickListener для itemView. В лицо вы должны установить ClickListener для optionImage и optionAddFabilities изменить

itemView.setOnClickListener(this);

до

optionImage.setOnClickListener(this);
optionAddFavorites.setOnClickListener(this);
...