我想更改Android应用中的语言环境,因此我使用了以下代码:
Locale locale = new Locale('fr'); // or whatever
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
但问题是我的观点没有任何改变。我应该如何重新加载它们以使区域设置更改?
编辑:每个视图都受到影响:按钮,文本视图,复选框。当然如果我手动设置视图的文本然后它工作但我不想在每个小部件上调用setText()...我知道它,因为用户名显示在视图中,并且它在注销后没有更新/与其他用户登录。所以我手动更新了textview,但是当我发现changinf语言环境时每个视图的问题都是一样的。
答案 0 :(得分:0)
我想您在询问更改区域设置时如何“重新加载”您所使用的Activity
。
据我所知,您必须重新布局/重新创建View
或重新设置其中的文本。但是,如果您找到更好的解决方案,请分享。
答案 1 :(得分:0)
好吧我找到了解决方案,想分享 将此添加到您的清单
android:configChanges="locale"
并覆盖活动中的onConfigurationChanged()
@Override
public void onConfigurationChanged(Configuration newConfig) {
// refresh your views here
super.onConfigurationChanged(newConfig);
}
转到here了解更多信息。 希望能帮助到你。 :)