国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android app應用多語言切換功能實現

2019-12-12 05:47:52
字體:
來源:轉載
供稿:網友

本文實例為大家分享了Android app應用實現多語言切換功能,供大家參考,具體內容如下

1.添加多語言文件
在不同的 value 文件夾下(例如 value 、value-en、values-zh-rTW 文件夾)添加不同語言的 string.xml 文件,我們的項目添加了英文、簡體中文、繁體中文三種語言,如下圖所示:

Project模式:


Android模式:


其中英文需要翻譯,繁體如果沒有專門翻譯的話,可以找個簡繁轉換網站,直接將簡體中文轉成繁體中文,推薦一個網站:
http://www.vifo.com.cn/fanti/

下面我只講解簡體中文和英文的做法;

2.現在我們可以在activity啟動里面(onCreate()或者onResume())獲取系統的語言:

  Locale locale = Locale.getDefault();
  String language = locale.getLanguage();

language就是我們從系統拿到的語言,這里如果是中文,拿到的是“zh”,如果是英文是“cn”;

3.拿到了系統語言,那么我們就要通過系統語言的判斷改變我們app對應的系統語言:

 protected void showLanguage(String language) {    //設置應用語言類型    Resources resources = getResources();    Configuration config = resources.getConfiguration();    DisplayMetrics dm = resources.getDisplayMetrics();    if (language.equals("zh")) {      config.locale = Locale.SIMPLIFIED_CHINESE;    } else {      config.locale = Locale.ENGLISH;    }    resources.updateConfiguration(config, dm);    //保存設置語言的類型(這個里面我先保存一下,下面會講到他的用處)    PreferenceUtil.commitString("language", language);  }

這樣子,如果你的手機開始的時候系統是中文,那么你的app就是中文,如果開始的時候系統是英文,那么你的app就是英文,這個只是適用開始的時候語言就已經設定好了,但是如果你現在的app用的是中文,app沒有退出的情況下,直接去把系統設置成英文,那么你返回到你的app的時候并不會是英文,依然是中文,必須在程序退出之后,再進來的時候才會成為英文,這樣子的體驗一點都不好,那么我們怎么樣才能做到你改系統語言,我的app就跟著去改變呢,所謂的動態改變。那么我們可以這樣子做。

 @Override  protected void onResume() {    super.onResume();    String LAN = PreferenceUtil.getString("language","");    Locale locale = Locale.getDefault();    String language = locale.getLanguage();    Log.i("語言――――――――",language);    if(!language.equals("")){      if(!LAN.equals(language)){        freshView();//重新啟動MainActivity      }    }    showLanguage(language);  }   private void freshView(){    Intent intent = new Intent(this, MainActivity.class);    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);    startActivity(intent);  }

首先PreferenceUtil這個是我自己寫的工具類,就是SharedPreferences存儲,在onResume()里面,重要的就是做個判斷,拿到的language是不是和之前保存系統的language一樣,如果不一樣,重新啟動MainActivity,這樣子就做到了重新獲取系統language。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 叙永县| 古丈县| 乡宁县| 宜都市| 大英县| 达拉特旗| 通道| 津南区| 陆川县| 通海县| 岱山县| 沅江市| 乡城县| 加查县| 连山| 高州市| 汤阴县| 犍为县| 昌邑市| 大厂| 兴业县| 萨迦县| 商洛市| 鲜城| 荣成市| 吉林市| 海丰县| 甘谷县| 夏河县| 东光县| 古交市| 土默特右旗| 股票| 千阳县| 罗平县| 老河口市| 资中县| 中宁县| 日照市| 枣阳市| 连城县|