Android 應用(中英文)切換

這裏簡單說下原理:就是有多個Strings文件,對應的選擇,然後刷新當前的Activity!


一:AndroidManifest.xml 文件

看來組件的配置缺少不了它,的確很是重要.....

在每個需要切換的語言Activity 下面添加:

android:configChanges="locale"

[java] view plaincopy
  1. <activity  
  2.            android:name="com.newentertainment.androidActivity"  
  3.            android:configChanges="locale"  
  4.            android:label="@string/app_name"  
  5.            android:theme="@style/concealTitle" >  



二:創建一個英文的Strings.xml 文件,目錄爲: values-en   

     



三:核心代碼,切換語言

[java] view plaincopy
  1. /** 
  2.  * 刷新語言 
  3.  */  
  4. public void updateActivity(String sta) {  
  5.   
  6.     // 本地語言設置  
  7.     Locale myLocale = new Locale(sta);  
  8.     Resources res = getResources();  
  9.     DisplayMetrics dm = res.getDisplayMetrics();  
  10.     Configuration conf = res.getConfiguration();  
  11.     conf.locale = myLocale;  
  12.     res.updateConfiguration(conf, dm);  
  13.     startActivity((new Intent(this, TabActivity.class)));  
  14.     this.finish();  
  15. }  


String sta=getResources().getConfiguration().locale.getCountry()  用於判斷當前的語言,

Locale.getDefault().getLanguage() //語言:取到的比如中文爲zh,英文爲en,日文爲ko;
Locale.getDefault().toString()//具體的類別:比如繁體爲zh_TW,簡體爲zh_CN。英文中有en_GB;日文有ko_KR。

把需要切換的Strings.xml對應的語言,傳入到 updateActivity(String sta)  方法..... 



*... 項目開發中按鈕爲一個,點擊後,需要更改圖片,這就需要判斷,簡單貼一段判斷:

[java] view plaincopy
  1. // 切換成英文  
  2.         if (LanguageSettings.getInstance().getCurrentLanguage().equals("zh"))                                           {  
  3.             updateActivity("en");  
  4.             LanguageSettings.getInstance().switchCurrentLanguage();  
  5.         } else {  
  6.             // 切換成中文  
  7.             updateActivity("zh");  
  8.             LanguageSettings.getInstance().switchCurrentLanguage();  
  9.         }  

LanguageSettings.getInstance().getCurrentLanguage() 給變量動態賦值的標識列,用於判斷!(採用單例模式)

其中: LanguageSettings.java 

然後在OnCreate() 加載啓動的時候更改 按鈕圖片!



轉自http://blog.csdn.net/cs_li1126/article/details/11918707

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章