最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android app應(yīng)用多語(yǔ)言切換功能實(shí)現(xiàn)

 更新時(shí)間:2016年08月04日 11:21:29   作者:android_it  
這篇文章主要為大家詳細(xì)介紹了Android app應(yīng)用多語(yǔ)言切換功能實(shí)現(xiàn)代碼,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Android app應(yīng)用實(shí)現(xiàn)多語(yǔ)言切換功能,供大家參考,具體內(nèi)容如下

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

Project模式:


Android模式:


其中英文需要翻譯,繁體如果沒(méi)有專門翻譯的話,可以找個(gè)簡(jiǎn)繁轉(zhuǎn)換網(wǎng)站,直接將簡(jiǎn)體中文轉(zhuǎn)成繁體中文,推薦一個(gè)網(wǎng)站:
http://www.vifo.com.cn/fanti/

下面我只講解簡(jiǎn)體中文和英文的做法;

2.現(xiàn)在我們可以在activity啟動(dòng)里面(onCreate()或者onResume())獲取系統(tǒng)的語(yǔ)言:

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

language就是我們從系統(tǒng)拿到的語(yǔ)言,這里如果是中文,拿到的是“zh”,如果是英文是“cn”;

3.拿到了系統(tǒng)語(yǔ)言,那么我們就要通過(guò)系統(tǒng)語(yǔ)言的判斷改變我們app對(duì)應(yīng)的系統(tǒng)語(yǔ)言:

 protected void showLanguage(String language) {
    //設(shè)置應(yīng)用語(yǔ)言類型
    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);
    //保存設(shè)置語(yǔ)言的類型(這個(gè)里面我先保存一下,下面會(huì)講到他的用處)
    PreferenceUtil.commitString("language", language);
  }

這樣子,如果你的手機(jī)開(kāi)始的時(shí)候系統(tǒng)是中文,那么你的app就是中文,如果開(kāi)始的時(shí)候系統(tǒng)是英文,那么你的app就是英文,這個(gè)只是適用開(kāi)始的時(shí)候語(yǔ)言就已經(jīng)設(shè)定好了,但是如果你現(xiàn)在的app用的是中文,app沒(méi)有退出的情況下,直接去把系統(tǒng)設(shè)置成英文,那么你返回到你的app的時(shí)候并不會(huì)是英文,依然是中文,必須在程序退出之后,再進(jìn)來(lái)的時(shí)候才會(huì)成為英文,這樣子的體驗(yàn)一點(diǎn)都不好,那么我們?cè)趺礃硬拍茏龅侥愀南到y(tǒng)語(yǔ)言,我的app就跟著去改變呢,所謂的動(dòng)態(tài)改變。那么我們可以這樣子做。

 @Override
  protected void onResume() {
    super.onResume();
    String LAN = PreferenceUtil.getString("language","");
    Locale locale = Locale.getDefault();
    String language = locale.getLanguage();
    Log.i("語(yǔ)言————————",language);
    if(!language.equals("")){
      if(!LAN.equals(language)){
        freshView();//重新啟動(dòng)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這個(gè)是我自己寫(xiě)的工具類,就是SharedPreferences存儲(chǔ),在onResume()里面,重要的就是做個(gè)判斷,拿到的language是不是和之前保存系統(tǒng)的language一樣,如果不一樣,重新啟動(dòng)MainActivity,這樣子就做到了重新獲取系統(tǒng)language。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

宁海县| 大新县| 孟连| 重庆市| 来宾市| 武宁县| 闸北区| 三江| 平顺县| 峡江县| 壤塘县| 廊坊市| 津市市| 丰原市| 尼勒克县| 治多县| 九台市| 沂水县| 晋城| 普陀区| 乌拉特前旗| 天镇县| 海门市| 昌乐县| 乌兰浩特市| 郴州市| 巩留县| 布拖县| 什邡市| 建平县| 木兰县| 郧西县| 囊谦县| 出国| 张北县| 孟州市| 金秀| 娄底市| 德江县| 仁布县| 常山县|