【问题标题】:Labels loose value change of orientation with internationalization android使用国际化android标记方向的松散值变化
【发布时间】:2012-06-14 02:04:03
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

    标签: android internationalization orientation


    【解决方案1】:

    顺便说一句,我解决了!

    问题是我在重新加载视图之前没有调用 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());
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-11
      • 1970-01-01
      • 2023-03-12
      • 2011-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多