[英]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.