package Ġcn . example . sun ny Weather . ui . place Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . drawer layout . widget . Drawer Layout Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcn . example . sun ny Weather . R Ċ import Ġcn . example . sun ny Weather . databinding . Activity Main Binding Ċ import Ġcn . example . sun ny Weather . databinding . Activity Weather Binding Ċ import Ġcn . example . sun ny Weather . databinding . Place Item Binding Ċ import Ġcn . example . sun ny Weather . logic . model . Place Ċ import Ġcn . example . sun ny Weather . ui . weather . Weather Activity Ċ Ċ / ************************ * Ċ Ġ* Ġ@ ProjectName : ĠSun ny Weather Ċ Ġ* Ġ@ Dir _ Path : Ġapp / src / main / java / cn / example / sun ny Weather / ui / place Ċ Ġ* Ġ@ Author : ĠB arry All en Ċ Ġ* Ġ@ Time : Ġ 2 0 2 1 / 1 1 / 1 3 Ġ 1 8 : 3 1 Ġ æĺŁ æľŁ åħŃ Ċ Ġ* ĠTODO : Ċ Ġ************************* */ Ċ class ĠPlace Adapter ( private Ġval Ġfragment : ĠPlace Fragment , Ġprivate Ġval Ġplace List : ĠList < Place >) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < Place Adapter . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġinner Ġclass ĠViewHolder ( m Binding : ĠPlace Item Binding ) Ġ: ĠRecyclerView . ViewHolder ( m Binding . root ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġplace Name : ĠTextView Ġ= Ġm Binding . place Name ĊĠĠĠĠĠĠĠ Ġval Ġplace Address : ĠTextView Ġ= Ġm Binding . place Address ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġm Binding Ġ= ĠPlace Item Binding . bind ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . place _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġholder Ġ= ĠViewHolder ( m Binding ) ĊĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposition Ġ= Ġholder . adapter Position ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplace Ġ= Ġplace List [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġfragment . activity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( activity Ġis ĠWeather Activity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdrawer Layout : ĠDraw er Layout Ġ= Ġparent . root View . findViewById ( R . id . drawer Layout ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer Layout . close Draw ers () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . viewModel . location Lng Ġ= Ġplace . location . lng ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . viewModel . location Lat Ġ= Ġplace . location . lat ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . viewModel . place Name Ġ= Ġplace . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . refresh Weather () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( parent . context , ĠWeather Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra (" location _ lng ", Ġplace . location . lng ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra (" location _ lat ", Ġplace . location . lat ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra (" place _ name ", Ġplace . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . startActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. finish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . viewModel . save Place ( place Ġ= Ġplace ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġholder ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġplace Ġ= Ġplace List [ position ] ĊĠĠĠĠĠĠĠ Ġholder . place Name . text Ġ= Ġplace . name ĊĠĠĠĠĠĠĠ Ġholder . place Address . text Ġ= Ġplace . address ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġplace List . size Ċ }