我正在尝试添加语言 Controller ,这意味着更改我的应用程序的语言。
我添加了 4 个标志 (ImageView),每当我按下我想要的标志时,我希望应用根据该标志更改语言。
应用程序一开始是英文的,当我按下丹麦语 falg 时,语言确实会切换到丹麦语,但每当我想改回英文时,什么也没有发生。
我在它们自己的值文件夹中制作了几个 strings.xml 文件
value-en/strings.xml
value-dk/strings.xml
方法改变语言:
english.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Locale locale = new Locale("en");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getResources().updateConfiguration(config,getResources().getDisplayMetrics());
setContentView(R.layout.activity_main);
}
});
english
是我的 ImageView 变量
最佳答案
我找到了我的解决方案。
为了在我的其他组件上保存 onClickListener()
,我需要刷新 Activity ,如下所示:
重启 Activity
我只是做了一个像下面这样的方法:
//Restarts the activity after changing the languagse
private void RestartActivity(){
Intent intent = getIntent();
finish();
startActivity(intent);
}
每次更改语言时,我都会运行以下方法:
english.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Locale locale = new Locale("en");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getResources().updateConfiguration(config,getResources().getDisplayMetrics());
setContentView(R.layout.activity_main);
RestartActivity(); //Run the method as the last thing
}
});
出于某种原因,听众没有看到 mto 留下来,但这个解决方案对我有用。
关于Android - 更改语言环境(语言),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30479727/