在我的应用程序中,我有一个微调器来选择语言“en”或“ar”。我对这两种语言都有String.xml
。
一旦我们从微调器中选择语言,我希望我的布局能够改变选择的语言。
我试过这个,但是当我从微调器中选择时不会改变:
Spinner languageSpinner=(Spinner) findViewById(R.id.languagespinner);
languageSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
if(arg2==0)
languageToLoad = "en"; // your language
else
languageToLoad = "ar";
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
onConfigurationChanged(config);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
我该怎么做?
答案 0 :(得分:1)
设置区域设置后,您需要重新加载当前活动
finish();
startActivity(getIntent());
将重新加载您的活动。
答案 1 :(得分:0)
调用此函数重新启动您的活动
private void restartActivity() {
Intent intent = getIntent();
finish();
startActivity(intent);
}
答案 2 :(得分:0)