package Ġrv . adapter . data . binding Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . databinding . Observable ArrayList Ċ import Ġrv . adapter . core . X Adapter Ċ import Ġrv . adapter . view . holder . X ViewHolder Ċ Ċ /** Ċ Ġ* Ġ@ author Ġy Ċ Ġ* Ġ@ create Ġ 2 0 1 8 / 1 2 / 2 5 Ċ Ġ*/ Ċ open Ġclass ĠX Data Binding Adapter < T >( ĊĠĠĠ Ġprivate Ġval Ġvariable Id : ĠInt , ĊĠĠĠ Ġprivate Ġval Ġexecute Pending Bindings : ĠBoolean Ġ= Ġtrue Ċ ) Ġ: ĠX Adapter < T >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġm Data : ĠObservable ArrayList < T > Ġ= ĠObservable ArrayList () ĊĊĠĠĠ Ġoverride Ġvar Ġdata Container : ĠMutable List < T > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġm Data ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Data . addAll ( value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Item ViewHolder ( ĊĠĠĠĠĠĠĠ Ġparent : ĠViewGroup , ĊĠĠĠĠĠĠĠ Ġlayout Id : ĠInt , ĊĠĠĠĠĠĠĠ Ġclick : Ġ(( view : ĠView , Ġposition : ĠInt , Ġentity : ĠT ) Ġ-> ĠUnit )? , ĊĠĠĠĠĠĠĠ Ġlong Click : Ġ(( view : ĠView , Ġposition : ĠInt , Ġentity : ĠT ) Ġ-> ĠBoolean )? ĊĠĠĠ Ġ): ĠX ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠX Data Binding Holder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠData Binding Util . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener ( this , Ġclick ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On Long ClickListener ( this , Ġlong Click ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠX ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Item ViewType ( position )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpos Ġ= Ġcurrent Position ( position ) ĊĠĠĠĠĠĠĠ Ġholder Ġas ĠX Data Binding Holder ĊĠĠĠĠĠĠĠ Ġholder . view Data Binding . set Variable ( variable Id , ĠgetItem ( pos )) ĊĠĠĠĠĠĠĠ Ġif Ġ( execute Pending Bindings ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . view Data Binding . execute Pending Bindings () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }