package Ġcom . vm lo ft . develop . library . tools . utils Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . text . TextUtils Ċ import Ġcom . vm lo ft . develop . library . tools . VM Tools Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠAdministrator Ġon Ġ 2 0 1 5 / 5 / 1 2 . Ċ Ġ* Ġ å°ģè£ħ ĠSharedPreferences Ġæķ°æį® æĵįä½ľ å·¥åħ· ç±» Ċ Ġ*/ Ċ object ĠVM SP Util Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ä¿ĿåŃĺ ĠSharedPreferences Ġæĸĩä»¶ åīį ç¼Ģ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġconst Ġval Ġvm SP Prefix Ġ= Ġ" vm _ sp _" ĊĠĠĠ Ġprivate Ġval Ġentry Map : ĠMutable Map < String , ĠSP Entry > Ġ= Ġmutable Map Of () ĊĊĠĠĠ Ġclass ĠSP Entry ( name : ĠString , Ġcontext : ĠContext Ġ= ĠVM Tools . context ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġsp : ĠSharedPreferences Ġ= Ġcontext . get SharedPreferences ( vm SP Prefix Ġ+ Ġname , ĠContext . MODE _ PRIVATE ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ ä¿ĿåŃĺ æķ°æį® çļĦæĸ¹æ³ķ ï¼Į æĪĳä»¬ éľĢè¦ģ æĭ¿ åĪ° ä¿ĿåŃĺ æķ°æį®çļĦ åħ·ä½ĵ ç±»åŀĭ ï¼Į çĦ¶åĲİ æł¹æį® ç±»åŀĭ è°ĥçĶ¨ ä¸įåĲĮçļĦ ä¿ĿåŃĺ æĸ¹æ³ķ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġput ( key : ĠString , Ġobj : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġsp . edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( obj ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Ġ-> Ġeditor . putString ( key , Ġobj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠInt Ġ-> Ġeditor . put Int ( key , Ġobj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBoolean Ġ-> Ġeditor . put Boolean ( key , Ġobj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFloat Ġ-> Ġeditor . put Float ( key , Ġobj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLong Ġ-> Ġeditor . put Long ( key , Ġobj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġeditor . putString ( key , Ġobj . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . commit () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ å¼ĤæŃ¥ ä¿ĿåŃĺ æķ°æį® çļĦæĸ¹æ³ķ ï¼Į æĪĳä»¬ éľĢè¦ģ æĭ¿ åĪ° ä¿ĿåŃĺ æķ°æį®çļĦ åħ·ä½ĵ ç±»åŀĭ ï¼Į çĦ¶åĲİ æł¹æį® ç±»åŀĭ è°ĥçĶ¨ ä¸įåĲĮçļĦ ä¿ĿåŃĺ æĸ¹æ³ķ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġput Async ( key : ĠString , Ġobj : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġsp . edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( obj ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Ġ-> Ġeditor . putString ( key , Ġobj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠInt Ġ-> Ġeditor . put Int ( key , Ġobj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBoolean Ġ-> Ġeditor . put Boolean ( key , Ġobj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFloat Ġ-> Ġeditor . put Float ( key , Ġobj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLong Ġ-> Ġeditor . put Long ( key , Ġobj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġeditor . putString ( key , Ġobj . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . apply () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ å¾ĹåĪ° ä¿ĿåŃĺ æķ°æį® çļĦæĸ¹æ³ķ ï¼Į æĪĳä»¬ æł¹æį® é»ĺè®¤ åĢ¼ å¾ĹåĪ° ä¿ĿåŃĺ çļĦæķ°æį® çļĦ åħ·ä½ĵ ç±»åŀĭ ï¼Į çĦ¶åĲİ è°ĥçĶ¨ çĽ¸ å¯¹äºİ çļĦæĸ¹æ³ķ èİ·åıĸ åĢ¼ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġget ( key : ĠString , Ġdefault Object : ĠAny ): ĠAny Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( default Object ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Ġ-> Ġsp . getString ( key , Ġdefault Object ) Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠInt Ġ-> Ġsp . getInt ( key , Ġdefault Object ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBoolean Ġ-> Ġsp . getBoolean ( key , Ġdefault Object Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFloat Ġ-> Ġsp . get Float ( key , Ġdefault Object Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLong Ġ-> Ġsp . getLong ( key , Ġdefault Object Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ ç§»éĻ¤ æŁĲä¸ª key åĢ¼ å·²ç»ı å¯¹åºĶ çļĦåĢ¼ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġremove ( key : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġsp . edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . remove ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . commit () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ å¼ĤæŃ¥ ç§»éĻ¤ æŁĲä¸ª key åĢ¼ å·²ç»ı å¯¹åºĶ çļĦåĢ¼ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġremove Async ( key : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġsp . edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . remove ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . apply () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġæ¸ ħ éĻ¤ æīĢæľī æķ°æį® ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġclear ( context : ĠContext Ġ= ĠVM Tools . context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġsp . edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . commit () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġæ¸ ħ éĻ¤ æīĢæľī æķ°æį® ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġclear Async ( context : ĠContext Ġ= ĠVM Tools . context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġsp . edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . apply () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠæŁ¥è¯¢ æŁĲä¸ª key æĺ¯åĲ¦ å·²ç»ı åŃĺåľ¨ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġcontains ( key : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsp . contains ( key ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġè¿ĶåĽŀ æīĢæľīçļĦ éĶ® åĢ¼ å¯¹ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun ĠgetAll ( context : ĠContext Ġ= ĠVM Tools . context ): ĠMap < String , Ġ*> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsp . all ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ĠSharedPreferences Ġ å·¥åħ· æĵįä½ľ å®ŀä½ĵ ç±» ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Entry ( name : ĠString Ġ= Ġ"") : ĠSP Entry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsp FileName Ġ= Ġif Ġ( TextUtils . isEmpty ( name )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVM Tools . context . packageName ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġentry Ġ= Ġentry Map [ sp FileName ] ĊĠĠĠĠĠĠĠ Ġif Ġ( entry Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentry Ġ= ĠSP Entry ( sp FileName ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentry Map [ sp FileName ] Ġ= Ġentry ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġentry ĊĠĠĠ Ġ} Ċ Ċ }