2012-06-14 121 views
0

我正在開發一個使用國際化的Android應用程序。 所以我有我的解決方案中的文件夾values-language(例如values-en,values-br)。國際化運作良好。隨着國際化標籤寬鬆的價值變化android

問題是當我將它與定向元素結合在一起時。

我也有一個xml文件,用於橫向和其他肖像。我有文件夾佈局方向(例如佈局端口)。方向也很好。我通過隱藏以下方法來實現此目的:

public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
    setContentView(R.layout.main); 
} 

但是,我遇到了字符串值(標籤)的問題。當我改變方向時,所有的字符串值都會將數據和appers作爲ID放置。例如,我有一個標籤爲「SAVE」的按鈕。當我旋轉我的手機時,按鈕的標籤更改爲「@ 23232324」,這是資源的編號。

我該怎麼辦?我試圖爲每種語言創建縱向和橫向文件夾,但我沒有工作(例如values-br-port,values-br-land)。

我需要保持工作,方向和國際化。我需要基於方向和不同語言的兩種不同佈局。

回答

0

順便說一句,我解決了!

問題是我沒有在重新加載視圖之前調用方法setLocale。 所以我不得不這樣做,

public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
    setLocale(); 
    setContentView(R.layout.main); 
} 

而且setLocale方法:

public void setLocale(){ 
    Configuration config = new Configuration(); 
    config.locale = locale; 
    getBaseContext().getResources().updateConfiguration(config, 
    getBaseContext().getResources().getDisplayMetrics()); 
}