如何在RecyclerView CardView Android中获取项目的信息

时间:2015-11-05 10:27:04

标签: java android arraylist

我有一个RecyclerView,它是通过膨胀CardView布局构建的。这是通过onCreateViewHolder方法实现的。我将ArrayList数据传递给RecyclerView

我的要求是,在点击列表项时,我必须加载一个新页面,显示所点击项目的详细信息。为此,我需要获取单击的项目的ID,该ID未在视图中显示。在视图中,我只有该项目的名称和电子邮件。

假设我传递的ArrayList的类型为Person,Person包含成员变量idnameemaileducation,{{ 1}}。 在location RecyclerView功能中,我只设置了onBindViewHoldername

我需要获取项目的id,然后只有我可以执行db命令并获取特定人员的详细信息。

email

我的要求是RecyclerView rv = (RecyclerView) rootView.findViewById(R.id.recyclerList); rv.setAdapter(new NGOViewHolder(ArrayList())); rv.addOnItemTouchListener( // and the click is handled new RecyclerItemClickListener(getActivity(), new RecyclerItemClickListener.OnItemClickListener() { @Override public void onItemClick(View view, int position) { Intent intent = new Intent(getActivity(),NGODetails.class); intent.putExtra("ID", (IDOfTheItemClicked)); })); ,即传递上述

IDOfTheItemClicked

应该是我最初传递的Intent(getActivity(),NGODetails.class); intent.putExtra("ID", (IDOfTheItemClicked)); 项目的ID。

如何在点击列表项时将ArrayList当前显示在视图中的id对象发送到下一个屏幕。

2 个答案:

答案 0 :(得分:0)

如果您不更改适配器中项目的顺序,只需在onClick中调用yourArrayList.get(position).yourgetIDOfTheItemClickedMethod

答案 1 :(得分:0)

set position for each item using setTag inside onCreateViewHolder method after that when you'll click then inside onclick you get a view reference from there, get that tag and convert to int( this will give you position of view)

onCreateViewHolder(............){
View view;
view.setTag(id, position);
view.setOnTouch or Onclick(View v){
String position = v.getTag(),toString();
// get your id using this position
}
}