我有一个回收站视图,显示用户在我的应用程序中发布的所有帖子.我希望用户能够单击其中一个帖子,并带到一个新片段,在该片段中,他们只能看到他们选择的帖子.
当我运行代码并单击其中一篇文章时,甚至不会触发OnCLickListener.
我曾尝试在公共无效的OnClick上添加断点,但从未触发过断点.我尝试将OnClick添加到onBindViewHolder,但我知道这不是一个好主意.
public class PostAdapter extends RecyclerView.Adapter<PostAdapter.PostViewHolder> { public List<Post> postList; private Context context; private static OnItemClickListener onItemClickListener; public PostAdapter(){ } public interface OnItemClickListener{ void onItemClick(View v,int position); } public void updateList(List<Post> list){ postList = list; notifyDataSetChanged(); } public static class PostViewHolder extends RecyclerView.ViewHolder{ TextView postName,postUsername,postDate,postTime,postContent,postId; PostViewHolder(View v) { super(v); this.postName = (TextView) itemView.findViewById(R.id.name); this.postUsername = (TextView) itemView.findViewById(R.id.username); this.postDate = (TextView) itemView.findViewById(R.id.date); this.postTime = (TextView) itemView.findViewById(R.id.time); this.postContent = (TextView) itemView.findViewById(R.id.content); this.postId = (TextView) itemView.findViewById(R.id.postId); v.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int position = PostViewHolder.super.getAdapterPosition(); onItemClickListener.onItemClick(v,position); System.out.println("doesn't even make it here"); } }); } } public PostAdapter(List<Post> postList,Context context){ this.postList = postList; this.context = context; } @Override public PostAdapter.PostViewHolder onCreateViewHolder(ViewGroup parent,int viewType){ View view = LayoutInflater.from(context).inflate(R.layout.all_posts_layout,parent,false); return new PostAdapter.PostViewHolder(view); } @Override public void onBindViewHolder(PostViewHolder holder,int position){ Post post = postList.get(position); holder.postUsername.setText(String.valueOf(post.getUsername())); holder.postName.setText(String.valueOf(post.getName())); holder.postDate.setText(String.valueOf(post.getDate())); holder.postTime.setText(String.valueOf(post.getTime())); } @Override public int getItemCount(){ return this.postList.size(); }
@H_404_12@任何帮助将不胜感激!
<---card layout for each individual post----> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="130dp" android:orientation="vertical"> <ScrollView android:layout_width="wrap_content" android:layout_height="130dp"> <android.support.v7.widget.CardView android:id="@+id/card_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginLeft="16dp" android:layout_marginTop="16dp" android:layout_marginRight="16dp" android:layout_marginBottom="2dp" android:elevation="60dp"> <RelativeLayout android:id="@+id/search_term_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="1dp"> <TextView android:id="@+id/name" android:layout_width="wrap_content" android:textStyle="bold" android:layout_height="wrap_content" android:text="Name" android:textSize="20sp" /> <TextView android:id="@+id/username" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textStyle="italic" android:layout_marginLeft="10dp" android:layout_toRightOf="@id/name" android:text="Username" android:textSize="18sp" /> <TextView android:id="@+id/date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/content" android:layout_alignParentEnd="true" android:layout_marginEnd="56dp" android:text="Date" android:textSize="10sp" /> <TextView android:id="@+id/time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/username" android:layout_toRightOf="@+id/username" android:layout_alignParentEnd="true" android:paddingLeft="8dp" android:text="Time" android:textSize="10sp" /> <TextView android:id="@+id/content" android:layout_width="315dp" android:layout_height="48dp" android:layout_below="@+id/name" android:layout_alignStart="@+id/name" android:text="Content" android:textSize="18sp" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/postId" android:text="ID" android:layout_below="@id/content" /> </RelativeLayout> </android.support.v7.widget.CardView> </ScrollView> </LinearLayout>
@H_404_12@< ---显示所有帖子的回收者视图------>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:tools="http://schemas.android.com/tools"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/filterBtn" android:text="Filter" android:background="@drawable/button" android:layout_margin="2dp" android:textColor="@color/common_google_signin_btn_text_dark_default"/> <android.support.v7.widget.RecyclerView android:id="@+id/update_post_view" android:layout_width="match_parent" android:layout_marginTop="50dp" android:padding="10dp" android:layout_height="match_parent" /> </RelativeLayout>
@H_404_12@
最佳答案
好像您的ScrollView消耗了click事件.尝试将其删除或替换为NestedScrollView