這裏的這個問題對我來說很有幫助。我從來沒有嘗試過應用程序的本地化。所以我在這裏是全新的。但我仍然面臨一些問題。 我有這樣的語言列表;Android中的多語言本地化
<string-array name="languages">
<item>English</item>
<item>Finnish</item>
<item>French</item>
<item>German</item>
<item>Slovakian</item>
<item>Polish</item>
</string-array>
我想在應用程序啓動時將默認設置爲英語。當語言改變時,我希望在整個活動中運行相同的語言。在上面的鏈接中,方法public void setLocale(String localeCode),在我的情況下,localeCode是什麼。這裏的區域設置代碼是什麼,Locale locale = new Locale(localeCode); 。我知道這裏可能是Locale.setDefault(Locale.ENGLISH); 。我已經完成了這樣的事情,我知道這是廢話,因爲它不符合我的期望。你能幫我一個正確的道路嗎?在此先感謝
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);
}}
嘗試通過評論Locale.setDefault(locale);檢查以下鏈接:http://developer.android.com/reference/java/util/Locale.html#setDefault%28java.util.Locale%29 – Rama
@Rama你能否簡單地解釋一下,不要理解你。 – bShah
希望下面的鏈接給你答案:http://stackoverflow.com/questions/ 2264874 /更改區域內應用程序本身 – Rama