我正在开发一款使用国际化的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)。
我需要保持工作,定位和国际化。我需要根据方向和不同的语言有两种不同的布局。
答案 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());
}