【问题标题】:onItemClick is returning different valuesonItemClick 返回不同的值
【发布时间】:2018-12-08 13:50:19
【问题描述】:

我的适配器中有这个 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());
        }
    }

稍后,在我的 Activity 中,我实现了:

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");

        }
    }
}

我没有得到点击视图的 id...我做错了什么?

【问题讨论】:

  • isEditingFavorites 是真的吗?

标签: android view onitemclicklistener onitemclick


【解决方案1】:

那是因为您将 ClickListener 设置为 itemView。面对你应该将 ClickListener 设置为 optionImage 和 optionAddFavorites 改变

itemView.setOnClickListener(this);

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-29
    • 2018-02-19
    • 2020-02-19
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    相关资源
    最近更新 更多