我更改了默认的本地语言,但是在更改配置到横向和纵向之后的android 7中以及在xml布局中设置的打开页面字符串后,从默认目录中读取字符串!
java
android:text="@string/test"
这个字符串而不是显示 - > سلام;将显示 - >测试; 但是,如果我在java中以编程方式设置字符串,这将是有效的,文本是 - > سلام;
java
test.setText(G.context.getResources().getString(R.string.test));
我也检查每个更改配置中的本地语言
```的java
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
G.handler.postDelayed(new Runnable() {
@Override
public void run() {
checkLanguage();
}
}, 200);
}
public static void checkLanguage() {
try {
String selectedLanguage = G.selectedLanguage;
if (selectedLanguage == null) return;
Locale locale = new Locale(selectedLanguage);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
G.context.getResources().updateConfiguration(config, G.context.getResources().getDisplayMetrics());
// }
} catch (Exception e) {
e.printStackTrace();
}
}
```
答案 0 :(得分:0)
当您将配置更改为横向时,您应该有另一个具有相同名称的布局,专为此设计并在其中放置相同的文本。
答案 1 :(得分:0)
惊人的解决方案
在我从全局上下文
中使用的以下代码行中 G.context.getResources().updateConfiguration(config, G.context.getResources().getDisplayMetrics());
之后将旋转更改为横向并再次更改为纵向,xml布局中使用的 @ string / test 无法正常工作且'test'显示,而非显示波斯语单词'سلام'。
但现在
我刚刚删除了应用类
中填写的全局背景 getResources().updateConfiguration(config, getResources().getDisplayMetrics());
最后,这个问题解决了:)