package Ġcom . example . yang h ui wen . habit todo ist . view . item _ sample ĊĊ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget .* Ċ import Ġcom . example . yang h ui wen . habit todo ist . H abit Date Ċ import Ġcom . example . yang h ui wen . habit todo ist . Item Date Ċ import Ġcom . example . yang h ui wen . habit todo ist . R Ċ import Ġcom . example . yang h ui wen . habit todo ist . view . Add H abit Activity Ċ import Ġcom . example . yang h ui wen . habit todo ist . view . H abit Result Activity Ċ import Ġjava . util . ArrayList Ċ class ĠTable H abit Item ( context : ĠContext , Ġdata : ĠMap < Int , ĠH abit Date >, Ġto Do Name Ġ: String ) Ġ: Ġ ĠBase Adapter () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġdatas Ġ= data ĊĠĠĠ Ġprivate Ġvar Ġcontext Ġ= context ĊĠĠĠ Ġprivate Ġvar Ġdata Keys Ġ= ĠArrayList < Int >() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġdatas Ġ= data ĊĠĠĠĠĠĠĠ Ġfor Ġ(( key , value ) Ġin Ġdatas ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Keys . add ( key ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthis . context Ġ= context ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠMy Holder (){ ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġinfo Text Ġ: ĠTextView ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġcompletion Rate Ġ: ĠTextView ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġm Table Item Ġ: ĠRelative Layout ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget View ( position : ĠInt , ĠconvertView : ĠView ?, Ġparent : ĠViewGroup ?): ĠView Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġvar Ġview : View Ġ?= Ġnull Ċ // ĠĠĠĠĠĠĠ Ġvar Ġmy Holder : My Holder Ġ?= Ġnull ĊĊĠĠĠĠĠĠĠ Ġvar Ġview : View Ġ?= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġmy Holder : My Holder Ġ?= Ġnull ĊĊĠĠĠĠĠĠĠ Ġif ( convert View Ġ== Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Holder Ġ= ĠMy Holder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( parent Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Ġ= ĠLayoutInflater . from ( context ). inflate ( R . layout . project _ item , null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Holder . info Text Ġ= Ġview . findViewById ( R . id . info _ text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Holder . completion Rate Ġ= Ġview . findViewById ( R . id . completion _ rate ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Holder . m Table Item Ġ= Ġview . findViewById ( R . id . table Item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . tag Ġ= Ġmy Holder ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Ġ= ĠconvertView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Holder Ġ= Ġview . tag Ġas ĠMy Holder ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġhabit Item Ġ= Ġdatas [ data Keys [ position ]] ĊĠĠĠĠĠĠĠ Ġif Ġ( habit Item Ġ!= null ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Holder . info Text . text Ġ= Ġhabit Item . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Holder . completion Rate . text Ġ= Ġ" åł ħ æĮģ ${ habit Item . end ItemList . size } å¤© " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Holder . m Table Item . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġbundle = ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// bundle . putString (" name "," ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Int (" habit Index ", data Keys [ position ]) ĊĊ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġintent Ġ= ĠIntent ( context , ĠH abit Result Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" bundle ", bundle ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġview !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ( position : ĠInt ): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun ĠgetItem Id ( position : ĠInt ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġ// è¿ĶåĽŀ ä¸Ģä¸ª æķ´æķ° , å°±æĺ¯ è¦ģ åľ¨ list view ä¸Ń çİ° å®ŀ çļĦæķ°æį® çļĦ æĿ¡ æķ° ĊĠĠĠĠĠĠĠ Ġreturn Ġdatas . size ĊĠĠĠ Ġ} Ċ Ċ }