繁体   English   中英

Recycler视图单击Listener

[英]Recycler view Click Listener

我正在处理Android的应用程序以完成它但我在recyclerView中发现了问题,我不知道如何在recyclerView的Item的textview上实现点击监听器? (当我点击该项目时)

我有一个多选回收视图...只有当我选择了recyclerview项目时,textview才会变得易碎

这里用这个:

我的recyclerView行有2个textViews:

 public class MyViewHolder extends RecyclerView.ViewHolder{
        public TextView name,price;

        public MyViewHolder(View view){
            super(view);
            name = (TextView) view.findViewById(R.id.name);
            price= (TextView) view.findViewById(R.id.price);

            name.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Log.e("Test","Name clicked : "+getAdapterPosition());
                }
            });


        }
    }

从这个位置,您可以使用dataList获取特定项的值。

希望能帮助到你!!!

在回收器适配器的textView上实现View.OnClickListener。

您可以使用适配器和适配器,您可以为特定组件(即TextView)提供单击侦听器。

这可能对你有帮助....

 public class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{


        TextView textview;


        public MyViewHolder(View itemView) {
            super(itemView);
                itemView.setOnClickListener(this);

                textview = (TextView) itemView.findViewById(R.id.textview);


        }

        @Override
        public void onClick(View view) {
           textview = (TextView) itemView.findViewById(R.id.textview);
             //do your actions here

        }
    }

好吧,我想我能解决你的问题:

首先,在RecyclerView的项目布局中,使父布局可单击,并且TextView的可见性已消失:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/item_layout
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:layout_gravity="center"
    android:gravity="center"
    >
<TextView
  android:id="@+id/text_title"
  android:layout_width="match_parent"
  android:layout_height="50dp"/>
</LinearLayout>

使您的父布局可单击是必要的,并在ViewHolder类中声明此LinearLayout,如下所示:

class ViewHolder extends RecyclerView.ViewHolder {
 private LinearLayout itemLayout;
 private TextView textItem;
 ViewHolder(final View itemView) {
 super(itemView);
 itemLayout=(LinearLayout) itemView.findViewById(R.id.movie_item);
 textItem=(TextView)itemView.findViewById(R.id.text_title);
}

然后使用itemLayout.setOnClickListener()代替itemView.setOnClickListener,如下所示:

itemlayout.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
      //make your textView or your items Visible 
      //make your textview clickable
      //set Your itemLayoutClickable as false

    }
            });

最后,为TextView创建onClickListener:

textItem.setOnClickListener=new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {

//perform your text click action
}
});

为了再次使TextView不可见,您可能想要添加一些额外的逻辑,例如设置标志,检查标志并使项目可见或不可见并通知适配器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM