【发布时间】:2015-06-09 05:37:40
【问题描述】:
我在使用 RecyclerView 实现可点击卡片时遇到问题。我想获取点击哪张卡片的位置,然后加载正确的片段。
我确实查看了this post 并花了将近 30 分钟试图理解代码并自己实现它,但当我意识到 sn-p 中有多少错误时我放弃了。
这是我的适配器类。
public class RVAdapter extends RecyclerView.Adapter<RVAdapter.PersonViewHolder> {
public static CardView cv;
public static class PersonViewHolder extends RecyclerView.ViewHolder {
TextView chapterName;
TextView chapterNumber;
// ImageView chapterPhoto;
public PersonViewHolder(View itemView) {
super(itemView);
cv = (CardView) itemView.findViewById(R.id.cv);
chapterName = (TextView) itemView.findViewById(R.id.chapter_name);
chapterNumber = (TextView) itemView.findViewById(R.id.chapter_number);
// chapterPhoto = (ImageView) itemView.findViewById(R.id.person_photo);
}
}
List<Chapter> chapters;
RVAdapter(List<Chapter> chapters) {
this.chapters = chapters;
}
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
}
@Override
public PersonViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item, viewGroup, false);
PersonViewHolder pvh = new PersonViewHolder(v);
return pvh;
}
@Override
public void onBindViewHolder(PersonViewHolder personViewHolder, int i) {
personViewHolder.chapterName.setText(chapters.get(i).chapterName);
personViewHolder.chapterNumber.setText(chapters.get(i).chapterNumber);
// personViewHolder.chapterPhoto.setImageResource(persons.get(i).photoId);
}
@Override
public int getItemCount() {
return chapters.size();
}
}
我已经查看了 StackOverflow 上的每个实现,要么我有狭隘的视野,要么它们都没有真正起作用。我知道旁边有很多帖子,但在问这个问题之前我确实花了很多时间寻找答案,所以所有这些链接对我来说都是紫色的。
感谢所有帮助,我非常乐意发布任何其他可能有帮助的代码!
【问题讨论】:
标签: android android-fragments android-recyclerview android-cardview