当前位置: 代码迷 >> Android >> 为什么我在RecyclerView中的按钮OnClickListener无法正常工作?
  详细解决方案

为什么我在RecyclerView中的按钮OnClickListener无法正常工作?

热度:92   发布时间:2023-08-04 11:52:26.0

我有一个RecyclerView ,其中每个CardView都有几个buttons 以下是RecyclerView项目的onClick代码。

lvOffers.addOnItemTouchListener(new RecyclerItemClickListener(getContext(), new RecyclerItemClickListener.OnItemClickListener() {
        @Override
        public void onItemClick(View view, int position) {
            String hisId = listOfOffers.get(position).getUserIdHis();
            selectedPosition = position;
            status = listOfOffers.get(position).getStatus();
            dateUpdated = listOfOffers.get(position).getLastUpdateDate();
            currentOfferId = listOfOffers.get(position).getOfferId();
            new GetUserPosts().execute(hisId);
        }
    }));

但是,当我在Adapter添加按钮onClick的代码时,不会调用它, ItemTouchListener会调用ItemTouchListener

holder.ivPrimaryImageOfferFew1.setOnClickListener(new View.OnClickListener()     {
            @Override
            public void onClick(View v) {
                Toast.makeText(context,"clicked",Toast.LENGTH_SHORT).show();
            }
        });

如果您需要同时工作。 删除OnItemCLickListener并将onClickListener写入视图的根视图。

如果您正在使用

android:focusable="true" 
android:focusableInTouchMode="true"

删除它,会导致点击问题。

或者也

rvExpertbooksList.addOnItemTouchListener(
                new RecyclerItemClickListener(ExpertBooksDetailsActivity.this, new RecyclerItemClickListener.OnItemClickListener() {
                    @Override
                    public void onItemClick(View view, int position) {

                    }
                })
        );

删除RecyclerView addOnItemTouchListener 它工作正常