Java 更改默认区域设置语言android
我制作了两个不同的strings.xml,一个用于瑞典语,一个用于英语 更改区域设置的代码Java 更改默认区域设置语言android,java,android,localization,locale,Java,Android,Localization,Locale,我制作了两个不同的strings.xml,一个用于瑞典语,一个用于英语 更改区域设置的代码 public void setLocale(String lang) { Locale myLocale = new Locale(lang); Resources res = getResources(); DisplayMetrics dm = res.getDisplayMetrics(); Configuration conf = res.getConfigura
public void setLocale(String lang) {
Locale myLocale = new Locale(lang);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
Intent refresh = new Intent(getContext(), BaseActivity.class);
startActivity(refresh);
}
swedish.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setLocale("sv");
}
});
english.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setLocale("en");
}
});
单击用于切换语言的侦听器
public void setLocale(String lang) {
Locale myLocale = new Locale(lang);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
Intent refresh = new Intent(getContext(), BaseActivity.class);
startActivity(refresh);
}
swedish.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setLocale("sv");
}
});
english.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setLocale("en");
}
});
问题是,这个应用程序是自己在瑞典语上启动的,据我所知,瑞典语并不是我自己设置的。当应用程序启动时,如何更改默认区域设置
问题
当用户按下“语言选择”键时,将该值存储到prefrence中,一旦您再次返回,则prefrence中已经存储了一个值。现在只需调用如下方法:-
setLocale_forstartup(“en”)代码>
公共语言(){
试一试{
Resources res = mContext.getResources();
// Change locale settings in the app.
DisplayMetrics dm = res.getDisplayMetrics();
android.content.res.Configuration conf = res.getConfiguration();
conf.locale = new Locale("en");
// conf.locale = new Locale("en");
res.updateConfiguration(conf, dm);
} catch (Throwable throwable) {
throwable.printStackTrace();
}
}
它只适用于某些语言。
我发现当我使用android studio的翻译编辑器时,添加了一个区域设置,例如波斯语(fa),而不是values fa
android studio添加values fa rIR
,所以当我们要求locale(“fa”)
时,它不会起作用。因此,如果它不起作用,请转到项目视图
并重命名您的文件夹(在我的例子中,res/values fa rIR
到res/values fa
)
以及setContentView()
祝你好运你为它创建了两个不同的值文件夹吗?values sw
和values en
并将不同的strings.xml
文件放入其中。@Piyush我在values文件夹中有两个不同的strings.xml。我读了一些关于两个不同值文件夹的内容,但我认为只需要添加两个不同的str就可以了因为这是我想要的唯一更改。不,它不能工作。你必须创建两个不同的值文件夹。@Piyush好的,这就是为什么我不能设置默认语言的原因?因为它可以在单击按钮时更改它,但我每次打开应用程序时都必须更改它。是的,正因为如此