1
我想旋轉手機並保留語言環境。我有文件夾值,值爲en和值小時。在每次活動我都在應用程序中強制「區域設置」
android:configChanges="keyboardHidden|orientation|locale"
,並在每activity.java文件我有
private Locale locale = null;
@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
if (locale != null)
{
newConfig.locale = locale;
Locale.setDefault(locale);
getBaseContext().getResources().updateConfiguration(newConfig, getBaseContext().getResources().getDisplayMetrics());
}
}
和的onCreate
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
Configuration config = getBaseContext().getResources().getConfiguration();
String lang = settings.getString("language","en");
if (! "".equals(lang) && ! config.locale.getLanguage().equals(lang))
{
locale = new Locale(lang);
Locale.setDefault(locale);
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
}
它的工作,直到我轉動我的手機 - 應用程序是還在工作,按鈕和一切都很好 - 但語言環境越來越奇怪 - 有時它是我的語言環境(小時)有時它是(EN)...
我還需要補充什麼?
爲什麼你是否搞亂了語言環境,而不是讓Android系統爲你處理它? – 2011-01-14 22:44:23