代码之家  ›  专栏  ›  技术社区  ›  ANITHA SUNDARAMURTHY

回收器视图单击侦听器

  •  2
  • ANITHA SUNDARAMURTHY  · 技术社区  · 8 年前

    我有一个multiselect recyclerview…只有当我选择recyclerview项时,textview才可见

    5 回复  |  直到 8 年前
        1
  •  7
  •   sumit    8 年前

    我的recyclerView行有2个文本视图:

     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());
                    }
                });
    
    
            }
        }
    

    从这个位置,您可以使用数据列表获得特定项的值。

    希望能有所帮助!!!

        2
  •  0
  •   Paras Watts    8 年前

    机具视图。在回收器适配器的textView上单击监听器。

        3
  •  0
  •   Hardik Kotadiya    8 年前

        4
  •  0
  •   Arpit todewale    8 年前

    这可能会帮助你。。。。

     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
    
            }
        }
    
        5
  •  0
  •   Nishan Khadka    8 年前

    好的,我想我有办法解决你的问题:

    首先,在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>
    

    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(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
    
        }
                });
    

    textItem.setOnClickListener=new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
    
    //perform your text click action
    }
    });
    

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