Android区域设置更改

时间:2013-02-15 10:05:08

标签: android android-intent locale

我正在尝试通过使用微调器来更改我的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();
}

1 个答案:

答案 0 :(得分: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()之前。 希望这能解决你的问题。