Android 语言环境更改

标签 android android-intent locale

我正在尝试通过使用微调器更改我的 Android 应用程序的区域设置微调器包含语言列表微调器中的初始值将是英语但是当 Activity 加载时 Activity 会重复 Intent ..如果我将第一个值设置为选择然后它工作得很好,但我需要 Activity 的初始值是英文的。请帮我解决这个问题。

下面是我的语言微调器代码

位置0是英文 位置1是印地语

   language.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> parent, View view,
                int pos, long id) {
            // TODO Auto-generated method stub
            if(pos==0){
                languagechange("en");

            }
            if(pos==1)
            {
                languagechange("hi");
            }

        }

区域设置更改代码如下

    public void languagechange(String lang) {

    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(this, LoginActivity.class);
    startActivity(refresh);
    LoginActivity.this.finish();
}

最佳答案

“Activity 初始值要英文”

Locale myLocale = new Locale("en");
Configuration conf = new Configuration();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    conf.locale = myLocale;
    getResources().updateConfiguration(conf, null);
    setContentView(R.layout.activity_main);
}

放在setContentView()之前。 希望这能解决您的问题。

关于Android 语言环境更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14892258/

相关文章:

java - Android Room 数据库文件在数据库浏览器中的文件格式无效

android - 如何在 Activity 之间传递 ArrayList<HashMap<String, String>>?

android - 如何让 Activity 在根据 Intent 切换到新布局之前等待?

java - 使用 Eclipse 外部化字符串 - 如何获取 XYZ 语言的字符串?

internationalization - 如何使用 r.js 和 hbs.js 使用多个语言环境

java - 获取一个国家的货币代码

javascript - react-native 是否优化了 JavaScript 代码?

android - 如何创建弯曲的折叠工具栏布局?

java - 空对象引用 Adapter.Messageadapter.onBindViewHolder 上的“void android.widget.TextView.setText(java.lang.CharSequence)”

java - 区域设置和多语言支持的最佳实践是什么?