亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

單擊偵聽器到 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 關注
  • 123 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號