/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttps :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . samples . storage Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . annotation . Id Res Ċ import Ġandroidx . annotation . String Res Ċ import Ġandroidx . navigation . find Nav Controller Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ Ċ data Ġclass ĠAction (@ String Res Ġval Ġname Res : ĠInt , Ġ@ Id Res Ġval Ġaction Res : ĠInt ) Ċ Ċ class ĠAction ListAdapter ( private Ġval ĠdataSet : ĠArray < Action >) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < Action ListAdapter . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠProvide Ġa Ġreference Ġto Ġthe Ġtype Ġof Ġviews Ġthat Ġyou Ġare Ġusing ĊĠĠĠĠ Ġ* Ġ( custom ĠViewHolder ). ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠViewHolder ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠtextView : ĠTextView Ġ= Ġview . findViewById ( R . id . textView ) ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDefine Ġclick Ġlistener Ġfor Ġthe ĠViewHolder 's ĠView . ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠCreate Ġnew Ġviews Ġ( inv oked Ġby Ġthe Ġlayout Ġmanager ) ĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( view Group : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġa Ġnew Ġview , Ġwhich Ġdefines Ġthe ĠUI Ġof Ġthe Ġlist Ġitem ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( view Group . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . list _ row _ item , Ġview Group , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠReplace Ġthe Ġcontents Ġof Ġa Ġview Ġ( inv oked Ġby Ġthe Ġlayout Ġmanager ) ĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( view Holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠviewHolder . textView . context ĊĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġelement Ġfrom Ġyour Ġdataset Ġat Ġthis Ġposition Ġand Ġreplace Ġthe ĊĠĠĠĠĠĠĠ Ġ// Ġcontents Ġof Ġthe Ġview Ġwith Ġthat Ġelement ĊĠĠĠĠĠĠĠ ĠviewHolder . textView . text Ġ= Ġcontext . getString ( data Set [ position ]. name Res ) ĊĠĠĠĠĠĠĠ ĠviewHolder . textView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . find Nav Controller (). navigate ( data Set [ position ]. action Res ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠReturn Ġthe Ġsize Ġof Ġyour Ġdataset Ġ( inv oked Ġby Ġthe Ġlayout Ġmanager ) ĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= ĠdataSet . size Ċ } Ċ