package Ġcom . y up fe g . sample . ui Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . text . Sp ann able StringBuilder Ċ import Ġandroid . text . method . Link Movement Method Ċ import Ġandroid . text . method . Movement Method Ċ import Ġandroidx . databinding . Observable Field Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġcom . y up fe g . base . tools . span nable . append Ċ import Ġcom . y up fe g . base . tools . ext . dip To Px Ċ import Ġcom . y up fe g . li ved ata . Event LiveData Ċ import Ġcom . y up fe g . li ved ata . Mutable Event LiveData Ċ Ċ /** Ċ Ġ* Ċ Ġ* Ġ@ author Ġy u P Fe G Ċ Ġ* Ġ@ date Ċ Ġ*/ Ċ class ĠTest Result ViewModel Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġval Ġtest Sp ann able String Ġ= ĠObservable Field < CharSequence >() ĊĠĠĠ Ġval Ġtext Click Movement Method : ĠMovement Method Ġ= ĠLink Movement Method . getInstance () ĊĠĠĠ Ġval Ġtest Sp ann able High Light Color Ġ: ĠInt Ġ= ĠColor . TRANSP ARENT ĊĊĠĠĠ Ġval Ġsp ann able Click Event Ġ: ĠEvent LiveData < String > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġm Sp ann able Click Event ĊĠĠĠ Ġprivate Ġval Ġm Sp ann able Click Event Ġ= ĠMutable Event LiveData < String >() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Test Sp ann able String () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Test Sp ann able String (){ ĊĠĠĠĠĠĠĠ Ġval Ġsp ann able String Ġ= ĠSp ann able StringBuilder (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend (" æµĭè¯ķ ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextColor Ġ= ĠColor . DK GRAY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Text Size ( 1 2 . dip To Px ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend (" Result API Ġ" ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Text Size ( 1 8 . dip To Px ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextColor Ġ= ĠColor . BLUE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Sp ann able Click Event . value Ġ= Ġ" span nable Click " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend (" è¿ĶåĽŀ åĪ° åİŁå§ĭ é¡µéĿ¢ "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextColor Ġ= ĠColor . GREEN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtest Sp ann able String . set ( span nable String ) ĊĠĠĠ Ġ} Ċ }