2017-07-19 128 views
0

我正在接近完成它的應用程序工作,但我發現recyclerView中的問題,我不知道如何在recyclerView的項目的textview上實現點擊監聽器? (當我在項目點擊)Recycler view點擊監聽器

我有一個多選recyclerview ......只有當我選擇recyclerview項目,TextView的變vissible

+0

此鏈接可能會有所幫助https://stackoverflow.com/a/24471410/8164071 –

+0

nope ...沒有工作@PriteshVadhiya –

+0

在這裏試試它像這個一樣https://stackoverflow.com/questions/44151979/how-to-add-onclick-listener-to-recycler-view –

回答

1

這裏使用:

我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的特定項目。

希望它有幫助!

+0

我的回收站視圖是一個多選回收站視圖... ie)當我長按當前查看項目獲取選定....只有現在的文本視圖是可分離的...我試着你的代碼取消選擇該項目到手勢檢測器..做什麼 –

+0

你有什麼功能的單點擊recyclerview行? – sumit

+0

雅..我有一個功能..它打開另一個活動 –

0

在回收站適配器TextView的實施View.OnClickListener。

+0

將TextView設置爲可點擊 –

+0

沒有這個不會工作@NishanKhadka –

+0

沒有工作,這就是爲什麼要問作爲第一個地方 –

0

您可以使用適配器並從適配器中爲特定組件(即TextView)提供點擊偵聽器。

+0

我的回收視圖是一個多選再循環視圖... ie)當我長按當前視圖項目獲取選定....只有現在的文本視圖是可分離的...我試着你的代碼它desel由於GestureDetector而導致該項目出現怎麼辦 –

0

這可能幫助你....

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 

     } 
    } 
0

好吧,我想我有解決問題的方法:

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

讓您的父母點擊佈局是必要的,並聲明這的LinearLayout在ViewHolder類,以及這樣的:那麼

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

代替itemView.setOnClickListe的NER,使用itemLayout.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 

    } 
      }); 

於是最後,讓onClickListener你的TextView:

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

//perform your text click action 
} 
}); 

再次使TextView的隱形,你可能想添加一些額外的邏輯,如設置標誌,檢查標誌和使項目可見或不可見,並通知適配器