我有一個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