我正在接近完成它的應用程序工作,但我發現recyclerView中的問題,我不知道如何在recyclerView的項目的textview上實現點擊監聽器? (當我在項目點擊)Recycler view點擊監聽器
我有一個多選recyclerview ......只有當我選擇recyclerview項目,TextView的變vissible
我正在接近完成它的應用程序工作,但我發現recyclerView中的問題,我不知道如何在recyclerView的項目的textview上實現點擊監聽器? (當我在項目點擊)Recycler view點擊監聽器
我有一個多選recyclerview ......只有當我選擇recyclerview項目,TextView的變vissible
這裏使用:
我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的特定項目。
希望它有幫助!
我的回收站視圖是一個多選回收站視圖... ie)當我長按當前查看項目獲取選定....只有現在的文本視圖是可分離的...我試着你的代碼取消選擇該項目到手勢檢測器..做什麼 –
你有什麼功能的單點擊recyclerview行? – sumit
雅..我有一個功能..它打開另一個活動 –
在回收站適配器TextView的實施View.OnClickListener。
將TextView設置爲可點擊 –
沒有這個不會工作@NishanKhadka –
沒有工作,這就是爲什麼要問作爲第一個地方 –
您可以使用適配器並從適配器中爲特定組件(即TextView)提供點擊偵聽器。
我的回收視圖是一個多選再循環視圖... ie)當我長按當前視圖項目獲取選定....只有現在的文本視圖是可分離的...我試着你的代碼它desel由於GestureDetector而導致該項目出現怎麼辦 –
這可能幫助你....
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>
讓您的父母點擊佈局是必要的,並聲明這的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的隱形,你可能想添加一些額外的邏輯,如設置標誌,檢查標誌和使項目可見或不可見,並通知適配器
此鏈接可能會有所幫助https://stackoverflow.com/a/24471410/8164071 –
nope ...沒有工作@PriteshVadhiya –
在這裏試試它像這個一樣https://stackoverflow.com/questions/44151979/how-to-add-onclick-listener-to-recycler-view –