为了账号安全,请及时绑定邮箱和手机立即绑定

单击侦听器到 RecyclerView

单击侦听器到 RecyclerView

潇湘沐 2022-06-30 11:04:33
我想要完成的是为ImageViewRecyclerView 的行内部创建一个侦听器。这段代码已经可以工作了,但这不是我想要的解决方案,因为您需要在获得所需结果之前双击。ImageView// row click listenerrecyclerView.addOnItemTouchListener(new RecyclerTouchListener(getApplicationContext(), recyclerView, new RecyclerTouchListener.ClickListener() {    @Override    public void onClick(View view, final int position) {        ImageView viewContent = (ImageView)view.findViewById(R.id.btnViewContent);        ImageView deleteContent = (ImageView)view.findViewById(R.id.btnDeleteContent);        viewContent.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Toast.makeText(getApplicationContext(), "VIEW CONTENT", Toast.LENGTH_SHORT).show();            }        });        deleteContent.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Toast.makeText(getApplicationContext(), "DELETE CONTENT", Toast.LENGTH_SHORT).show();            }        });    }    @Override    public void onLongClick(View view, int position) {}}));知道如何将其转换为单击解决方案吗?建议甚至是一条评论都会对我有很大帮助。
查看完整描述

3 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

这不是正确的方法,因为我们的一位朋友建议onBindViewHolder 在滚动过程中一次又一次地被调用,因此在此处添加侦听器不是最佳做法。


最好的方法是按照我的建议将它添加到 ViewHolder 上。检查我上面的答案。


在 OnBindViewHolder 方法中添加您的 imageView 单击侦听器


@Override

public void onBindViewHolder(@NonNull final MyViewHolder holder, int position) {


    holder.btnClassAddCart.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View v) {

            // Do what you want here

        }

    });

}


查看完整回答
反对 回复 2022-06-30
?
BIG阳

TA贡献1859条经验 获得超6个赞

Then there is no need to implement recyclerView.addOnItemTouchListener ,  inside Viewholder just add clicklistener on the view(image) you want below is the example for reference.


 ` public static class HeaderViewHolder extends RootViewHolder {


        @BindView(R.id.cardview)

        CardView cardview;

        @BindView(R.id.main_container)

        LinearLayout main_container;

        @BindView(R.id.music_cardview)

        CardView music;

        @BindView(R.id.shabad_cardview)

        CardView shabadvaani;

        @BindView(R.id.news_cardview)

        CardView news;

        @BindView(R.id.donate_cardview)

        CardView donate;

        @BindView(R.id.bs_cardview)

        CardView bs;

        @BindView(R.id.bl_cardview)

        CardView bl;

        @BindView(R.id.bng_cardview)

        CardView bng;


        @BindView(R.id.more_cardview)

        CardView more;


        @BindView(R.id.vid_cardview)

        CardView vid;


        @BindView(R.id.medi_cardview)

        CardView medi;

//

//        @BindView(R.id.ama_cardview)

//        CardView ama;





        public HeaderViewHolder(final View itemView,final OnItemClickListener mOnItemClickListener) {

            super(itemView);

            ButterKnife.bind(this, itemView);

            news.setOnClickListener(new View.OnClickListener() {

                @Override

                public void onClick(View v) {


                    if (mOnItemClickListener != null) {

                        mOnItemClickListener.openDrawer();

                    }



                    //Intent i= new Intent(ctx,);

                    //open drawer code

                }

            });


            shabadvaani.setOnClickListener(new View.OnClickListener() {

                @Override

                public void onClick(View v) {


                    Intent i = new Intent(ctx, IndexActivity.class);

                    ctx.startActivity(i);


                }

            });



            music.setOnClickListener(new View.OnClickListener() {

                @Override

                public void onClick(View v) {


                    Intent i = new Intent(ctx, MainActivity.class);

                    i.putExtra("slug","audiobhajan");

                    ctx.startActivity(i);


                    //open drawer code

                }

            });


            more.setOnClickListener(new View.OnClickListener() {

                @Override

                public void onClick(View v) {


//                    Intent i = new Intent(ctx, stayrocks.jambh.vani.auth.MainActivity.class);

//                    ctx.startActivity(i);


                    if (mOnItemClickListener != null) {

                        mOnItemClickListener.openDrawer();

                    }



                    //open drawer code

                }

            });


            bs.setOnClickListener(new View.OnClickListener() {

                @Override

                public void onClick(View v) {

                    Intent intent= new Intent(ctx, AmaActivity.class);

                    ctx.startActivity(intent);


                }

            });


            bl.setOnClickListener(new View.OnClickListener() {

                @Override

                public void onClick(View v) {


                    Intent i = new Intent(ctx, ItemListActivity.class);

                    ctx.startActivity(i);

                    //open drawer code

                }

            });


            bng.setOnClickListener(new View.OnClickListener() {

                @Override

                public void onClick(View v) {

//                    String appPackage = "com.my.bishnoi.nextgen";

//                    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackage));

//                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

                    Intent intent= new Intent(ctx, WallpaperActivity.class);

                    ctx.startActivity(intent);

                    //open drawer code

                }

            });


            medi.setOnClickListener(new View.OnClickListener() {

                @Override

                public void onClick(View v) {

//                    String appPackage = "com.my.bishnoi.nextgen";

//                    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackage));

//                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

                    Intent intent= new Intent(ctx, stayrocks.jambh.vani.activities.jyot.MainActivity.class);

                    ctx.startActivity(intent);

                    //open drawer code

                }

            });


            vid.setOnClickListener(new View.OnClickListener() {

                @Override

                public void onClick(View v) {

//                    String appPackage = "com.my.bishnoi.nextgen";

//                    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackage));

//                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

                    Intent intent= new Intent(ctx, VideoListDemoActivity.class);

                    ctx.startActivity(intent);

                    //open drawer code

                }

            });


//            ama.setOnClickListener(new View.OnClickListener() {

//                @Override

//                public void onClick(View v) {

////                    String appPackage = "com.my.bishnoi.nextgen";

////                    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackage));

////                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

//                    Intent intent= new Intent(ctx, AmaActivity.class);

//                    ctx.startActivity(intent);

//                    //open drawer code

//                }

//            });

        }

    }

`


查看完整回答
反对 回复 2022-06-30
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

在 OnBindViewHolder 方法中添加您的 imageView 单击侦听器


    @Override

    public void onBindViewHolder(@NonNull final MyViewHolder holder, int position) {


        holder.imageView.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                // Do what you want here

            }

        });

}


查看完整回答
反对 回复 2022-06-30
  • 3 回答
  • 0 关注
  • 101 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信