我是android新手。我正在尝试使用this教程创建RecyclerView
。 RecyclerView
工作正常。我的问题是,我想获得RecyclerView
。
有人能帮助我吗? Here是我的完整代码。
public class View_Holder extends RecyclerView.ViewHolder implements View.OnClickListener{
CardView cv;
TextView title;
TextView description;
ImageView imageView;
View_Holder(View itemView) {
super(itemView);
cv = (CardView) itemView.findViewById(R.id.cardView);
title = (TextView) itemView.findViewById(R.id.title);
description = (TextView) itemView.findViewById(R.id.description);
imageView = (ImageView) itemView.findViewById(R.id.imageView);
//added by me
title.setOnClickListener(this);
description.setOnClickListener(this);
imageView.setOnClickListener(this);
}
//added by me
public ImageView getImageView() {
return imageView;
}
public TextView getTitle() {
return title;
}
public TextView getDescription() {
return description;
}
@Override
public void onClick(View v) {
// Toast.makeText(get, "CLICK", Toast.LENGTH_SHORT).show();
Log.i("positon-of-clicked-item", String.valueOf(getAdapterPosition()));
Log.i("positon-of-clicked-item", String.valueOf(getLayoutPosition()));
Log.i("positon-of-clicked-item", String.valueOf(this.getTitle()));
Log.i("positon-of-clicked-item", String.valueOf(this.getDescription()));
// getLayoutPosition(); //no method like that
}
答案 0 :(得分:3)
只需使用ViewHolder视图对象即可获得如下所示的详细信息。
@Override
public void onClick(View v) {
// Toast.makeText(get, "CLICK", Toast.LENGTH_SHORT).show();
Log.i("positon-of-clicked-item", String.valueOf(getAdapterPosition()));
Log.i("positon-of-clicked-item", String.valueOf(getLayoutPosition()));
Log.i("positon-of-clicked-item", String.valueOf(title.getText());
Log.i("positon-of-clicked-item", String.valueOf(sescription.getText()));
// getLayoutPosition(); //no method like that
}
答案 1 :(得分:1)
在getAdapterPosition()
内拨打onClick()
,然后使用您正在填充的列表中的位置获取项目。
更新:
最简单的方法是将ViewHolder
放在适配器类中。然后,您可以访问适配器的List<Data>
。
答案 2 :(得分:1)
在以下链接中有一些很好的相关帖子/文章:
该解决方案易于编码,但如果您不熟悉使用RecyclerView,则不会立即显现。
在View_Holder类中,您需要做两件事:
在从onClick事件调用的方法中,您需要从光标中查找所需的信息。