用国际化的android标记松散的价值变化

时间:2012-06-14 02:04:03

标签: android internationalization orientation

我正在开发一款使用国际化的Android应用。 所以我在我的解决方案中有文件夹值 - 语言(例如values-en,values-br)。国际化运作良好。

问题在于我将它与方向元素结合起来。

我还有一个用于横向的xml文件和用于肖像的其他文件。我有文件夹布局方向(例如布局端口)。方向也很好。我通过隐藏以下方法来实现这一目标:

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

但是我遇到了字符串值(标签)的问题。当我更改方向时,所有字符串值都会丢失数据并作为ID出现。例如,我有一个标签为“SAVE”的按钮。当我旋转手机时,按钮的标签变为“@ 23232324”,这是资源的编号。

我该怎么办?我试图为我拥有但不起作用的每种语言创建纵向和横向文件夹(例如values-br-port,values-br-land)。

我需要保持工作,定位和国际化。我需要根据方向和不同的语言有两种不同的布局。

1 个答案:

答案 0 :(得分: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());
}