0

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

问题是当我将它与方向元素结合起来时。

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

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

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

我能做些什么?我尝试为我拥有但不起作用的每种语言创建纵向和横向文件夹(例如 values-br-port、values-br-land)。

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

4

1 回答 1

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());
}
于 2012-06-14T15:12:54.553 回答