首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >更改android默认区域设置语言

更改android默认区域设置语言
EN

Stack Overflow用户
提问于 2017-08-09 16:00:02
回答 3查看 3.1K关注 0票数 1

我做了两个不同的strings.xml,一个是瑞典语,一个是英语。

用于更改区域设置的代码

 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);
}

用于切换语言language监听器

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");
        }
    });

问题是,应用程序自己启动了瑞典语版的应用程序,据我所知,这还不是我自己设置的。如何在应用程序启动时更改默认区域设置?

问题

  1. 如何设置应用程序开始使用英文xml?
  2. 谁有关于如何存储用户选择的提示?如果用户在关闭应用程序的情况下按下使用瑞典语,我希望将其存储。
EN

回答 3

Stack Overflow用户

发布于 2018-07-07 04:12:01

它只适用于某些语言。

我发现当我使用android studio的翻译器编辑器来添加区域设置时,比如添加波斯语(Fa),而不是values-fa android studio添加values-fa-rIR,所以当我们请求Locale("fa")时,它将不起作用。因此,如果不起作用,请转到project view并重命名您的文件夹(在我的示例中,将res/values-fa-rIR重命名为res/values-fa)。

在那之后,setContentView()也是

祝好运

票数 3
EN

Stack Overflow用户

发布于 2017-08-09 16:13:10

当用户按下language selection时,将此值存储到prefrence中,当您再次返回时,您已经在prefrence中存储了一个值。现在只需像这样调用该方法:- setLocale_forstartup("en");

`public void setLocale_forstartup(String lang) {

        myLocale = new Locale(lang);
        Locale.setDefault(myLocale);
        Resources res = getResources();
        DisplayMetrics dm = res.getDisplayMetrics();
        Configuration conf = res.getConfiguration();
        conf.locale = myLocale;
        res.updateConfiguration(conf, dm);

    }`
票数 0
EN

Stack Overflow用户

发布于 2017-08-09 17:27:26

公共空changeLanguage(){尝试{

        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();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45584865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档