我正在处理Android的应用程序以完成它但我在recyclerView中发现了问题,我不知道如何在recyclerView的Item的textview上实现点击监听器? (当我点击该项目时)
我有一个多选回收视图......只有当我选择了recyclerview项目时,textview才会变得可见
答案 0 :(得分:3)
这里使用:
我的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获取特定项目的值。
希望它有所帮助!!!
答案 1 :(得分:0)
在回收站适配器的textView上实现View.OnClickListener。
答案 2 :(得分:0)
您可以使用适配器和适配器,您可以为特定组件(即TextView)提供单击侦听器。
答案 3 :(得分: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
}
}
答案 4 :(得分: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>
必须使您的父布局可单击,并在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不可见,您可能想要添加一些额外的逻辑,例如设置标志,检查标志并使项目可见或不可见并通知适配器