Ⅰ android開發案例驅動教程目錄
Android開發案例驅動教程目錄:
前言:
第二章:開發環境搭建:
第三章:HelloAndroid程序創建:
第四章:UI基礎知識:
第五章:UI基礎知識:
第六章至第十四章:進階技術與實踐案例:
第十五章:高級應用與服務:
附錄:參考文獻:
Ⅱ Android 國際化 設置Locale.ENGLISH不生效以及createConfigurationContext()問題
Q1 故事情節: 設置了簡體中文,繁體中文和英信戚鋒文,結果拿了7.0榮耀青春版完美顯示,然而7.0下的所有安卓手機都設置英文無效,簡體中文和繁體中文依然可以,納悶......
Q1 解決方式:雖說看起來設置了英文Locale.ENGLISH, 但實際上有些手機或系統需要特殊指明那個英文的(英國/美國),所以不要直接使用Locale.ENGLISH,將滑晌Locale.ENGLISH改成相對應的Locale.US(美國英文) 或 Locale.UK(英國英文)就可以了,如下圖注釋部分。
Q2 故事仔滲情節:還以為Q1問題解決就可以了,在設置createConfigurationContext(config)情況下,>=6.0系統的手機都切換語言失敗(5.0的手機剛好沒有,所以待定),具體原因不詳
Q2 解決方式:老老實實,用回getResources().updateConfiguration(config, null)就可以了
Ⅲ Android國際化多語言切換
關於App國際化,之前有講到國際化資源、字元換、布局相關,想要了解的猛戳 用力抱一下APP國際化 。借著本次重構多語言想跟大家聊一下多語言切換,多語言切換對於一款國際化App來講是重中之重,並非難事,但是若要做好也是一件不容易的事情。
當我們做了系統的配置更改,比如說切換了系統導航或者說更改了深色模式,那麼我們一般的處理是也是要對Application作出處理。
如果項目中有用到ApplicationContext去getString(@StringRes int id)實現載入的提示語,那麼如果只是單純的重啟界面則無法讓當前的提示語跟隨當前切換的語言,所以我們要麼重啟整個應用,要麼對ApplicationContext中的Local也作出相應的更新方可,這里有一點問題,雖然Android N之後updateConfiguration是過時方法,官方給出使用createConfigurationContext代替,但是更新ApplicationContext的Local發現無效使用老版本updateConfiguration正常。
如果你發現你的應用廣播通知欄適配無效,那就是context中的Local在切換語言是並未及時更新Local,這里調試一下便知,如果是Applicaiton注冊的廣播,那麼多半情況下是沒有更新ApplicationContext的Local所導致的。
多語言適配基本步驟大概就是如此了,下面看一下適配的細節問題。
[圖片上傳失敗...(image-b42d06-1640685147639)]
還有一點Android N之後,手機系統的語言配置選項已經不是單選了,改為一個列表了,具體可以參考手機設置中的語言和輸入法,所以 setLocal(@Nullable Locale loc) 方法建議不要再使用了,我相信很多人還在用,正確的用法應該是 setLocals(@Nullable LocaleList locales) ,需要傳遞一個集合。
當你的應用使用的是androidx.appcompat:appcompat:1.2.0及以上時,BaseActivity中需要實現下面方法。
這套方案目前不在推薦,直接去替換attatchBaseContext()中的context則可,經過測試是完全正常的。
以下則是多語言操作的工具類,現在提供出來,需要的朋友可以自行進行改造。