2017-06-12 143 views
0

我正在使用下面的代碼來改變我的內部其他語言。但它總是採取應用程序內的語言更改後默認的字符串文件。另外在工作室中,新的其他語言字符串文件在相同的值文件夾中創建請幫助我。這裏是傳遞語言環境「ms-rMY」爲馬來語。我也嘗試過「ms」。檢查下面的代碼無法更改其他語言的字符串文件。它總是需要默認的字符串文件

public void updateLocale(String language) { 
     Locale myLocale = new Locale(language); 
     Locale.setDefault(myLocale); 
     Resources res = getResources(); 
     DisplayMetrics dm = res.getDisplayMetrics(); 
     Configuration conf = res.getConfiguration(); 
     conf.locale = myLocale; 
     res.updateConfiguration(conf, dm); 

     finish(); 
     Intent refresh = new Intent(getApplicationContext(), MainActivity.class); 
     refresh.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(refresh); 
    } 
+1

你的代碼似乎沒問題,也許問題出在你的values-xx文件夾中,你可以嘗試一些更容易的事情,比如values-fr然後設置locale爲「fr」? – lelloman

回答

2

您需要創建本地對象篩選

Local myLocale = new Locale("ms", "MY"); 

此構造函數允許你創建與語言,國家一個Locale對象。

0

Android系統始終採用設備中設置的語言。如果以這種方式進行更改,它只會將該語言保留在一項活動中。因此,您需要在活動的onCreate(每次)中更改本地。

@Override 
public void onCreate(Bundle bundle) { 
    //change the locale 
} 
+0

已經在oncreate – iffu

+0

@iffu更改語言環境後無法啓動活動。這將使其回到系統語言。您需要啓動該活動,然後更改區域設置。 – Rockernaap

相關問題