0
我的應用程序需要支持多種語言。我想從應用程序的所有活動中更改應用程序語言。所以我使用Base_Activity並將微調器放置在操作欄中。問題是在這裏改變語言。當我觸發微調器中的某個項目來改變語言時,它不會改變。但是在觸發物品並轉到下一個活動之後,它在那裏被更改。我試圖在觸發每次觸發語言後刷新頁面。當選擇微調器中的語言項時,如何使用另一種語言刷新頁面。我的代碼看起來像這樣;刷新語言更改項目觸發時的活動
public class Base_Activity extends Activity {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
final Spinner spinner = (Spinner) menu.getItem(0).getActionView()
.findViewById(R.id.spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.languages, R.layout.spinner_row);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
// private String currentLanguage;
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// currentLanguage = spinner.getSelectedItem().toString();
Locale locale = null;
switch (arg2) {
case 0:
locale = new Locale("en_US");
break;
case 1:
locale = new Locale("fi");
break;
case 2:
locale = new Locale("fr");
break;
case 3:
locale = new Locale("de");
break;
case 4:
locale = new Locale("sk");
break;
case 5:
locale = new Locale("pl");
break;
default:
locale = new Locale("en_US");
break;
}
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
startActivity();
}
private void startActivity() {
overridePendingTransition(0, 0);
Log.i("DEBUG", "GATEWAY");
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
Locale.setDefault(Locale.ENGLISH);
}
});
return super.onCreateOptionsMenu(menu);
}
}
是在我的代碼的差異,你給我提供什麼。我認爲它可能與其工作相同。 – bShah