2

スピナーを使用してAndroidアプリのロケールを変更しようとしていますスピナーには言語のリストが含まれていますスピナーの初期値は英語ですが、アクティビティがロードされるとアクティビティが繰り返し意図されます..最初の値をselectとして設定すると、動作します完全にですが、アクティビティの最初の値を英語にする必要があります。この問題について私を助けてください。

以下は、言語スピナーの私のコードです

位置 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 に答える