我有一个RecyclerView
这是通过膨胀CardView
布局构造的。这是通过onCreateViewHolder
方法实现的。我将一个ArrayList
的数据传递给RecyclerView
。如何获取RecyclerView CardView中的物品信息Android
我的要求是,单击列表项时,我必须加载一个新页面,显示所点击项目的详细信息。为此,我需要获取未在视图中显示的点击项目的ID。在该视图中,我只有该项目的名称和电子邮件。
比方说,我传递的ArrayList的是Person
型和人有成员变量id
,name
,email
,education
,location
。 在RecyclerView
onBindViewHolder
函数中,我只设置了name
和email
。
我需要获取该项目的ID,然后只有我可以做一个数据库命令,并获得特定人员的详细信息。
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));
传递应该是是,我已初步通过了ArrayList
项目的ID。
如何在点击列表项目时将当前显示在视图中的Person
对象的id
发送到下一个屏幕。
但是,View是一个inbuild类,我如何添加我自己的变量。此外,'onBindViewHolder'是来自ArrayList的数据被设置为视图的地方。 – sreeragnk
是的,您可以添加任何变量作为标签。 View类有它的函数setTag(yourUniqueId,yourValue); OnBindViewHolder不需要做任何事情。只能在onCreateViewHolder方法中设置并设置侦听器。 –
'public void onBindViewHolder(RecyclerViewHolder viewHolder,int i){ //从主数组获得单个元素 viewHolder.mName.setText(person.get_name()); viewHolder.mDesc.setText(person.getDescription()); }' 每个人都有一个ID。创建视图时,此ID未设置。只有名称和desc被设置。我需要传递id以及为列表中的所有人创建的每个视图。 – sreeragnk