日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android app内语言环境切换

發布時間:2025/5/22 Android 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android app内语言环境切换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

邏輯很簡單:

? ? ? 1 ?app內所有activity繼承自BaseActivity或BaseActivity派生出來的子類,BaseActivity中維護了一個靜態的 app Activity訪問棧,在創建和銷毀時會執行壓棧和出棧操作,所以mLocalStack內維持的是app中正在運行的activity。

? ? ? 2 ?將app的語言環境存儲在SharedPreferences中,避免app重啟時修改狀態不改變;在BaseActivity創建時取出語言環境字符串并初始化Activity語言環境(initLang方法)。

? ? ? 3 ?在頁面切換語言時,調用BaseActivity的switchLang方法,finish當前運行的所有activity,并跳轉到app主頁面。

?

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 public?abstract?class?BaseActivity?extends?Activity?{ ????//?activity訪問棧 ????private?static?Stack<BaseActivity>?mLocalStack?=?new?Stack<BaseActivity>(); ????protected?BaseActivity?????????????mContext; ? ????@Override ????protected?void?onCreate(Bundle?savedInstanceState)?{ ????????super.onCreate(savedInstanceState); ????????mContext?=?this; ? ????????//?壓棧 ????????mLocalStack.add(this); ? ????????initLang(); ????} ? ????@Override ????protected?void?onDestroy()?{ ????????//?出棧 ????????mLocalStack.remove(this); ????????super.onDestroy(); ????} ? ????private?void?initLang()?{ ????????Resources?res?=?getResources(); ????????Configuration?config?=?res.getConfiguration(); ????????Locale?locale?=?Locale.getDefault(); ????????String?langStr?=?""; ????????//TODO?獲取Sharedpreferences中存儲的app語言環境 ????????if("zh".equals(langStr)){ ????????????locale?=?Locale.CHINA; ????????}else?if("en".equals(langStr)){ ????????????locale?=??Locale.ENGLISH; ????????}else?if{ ????????????//..... ????????} ????????config.locale?=?locale; ????????res.updateConfiguration(config,?res.getDisplayMetrics()); ????} ????? ????protected?void?switchLang(String?newLang){ ????????//TODO?更新Sharedpreferences中存儲的app語言環境 ????????? ????????//?finish?app內存中的所有activity ????????while?(0?!=?mLocalStack.size())?{ ????????????mLocalStack.pop().finish(); ????????} ????????? ????????//?跳轉到app首頁 ????????startActivity(MainActivity.class); ????} ????? ????public?void?startActivity(Class<??extends?BaseActivity>?cls)?{ ????????startActivity(new?Intent(this,?cls)); ????} }

?

轉載于:https://www.cnblogs.com/Free-Thinker/p/5395314.html

總結

以上是生活随笔為你收集整理的Android app内语言环境切换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。