2

我正在尝试通过使用微调器来更改我的 android 应用程序的语言环境,微调器包含语言列表,微调器中的初始值将是英语,但是当加载活动时,活动会重复意图..如果我将第一个值设置为选择,那么它可以工作完美,但我需要活动的初始价值是英语。请在这个问题上帮助我。

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

位置 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();
}
4

1 回答 1

1

“活动的初始价值是英语”

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() 之前。希望这能解决您的问题。

于 2013-12-08T10:15:02.897 回答