1
我正在創建一個android應用程序,其中設置了英語和泰米爾語言的語言環境,當我單擊泰米爾語言時,它顯示泰米爾語中的字符串,每項工作都正常。我有一個活動是在橫向模式時,啓動該活動的區域被從泰米爾語改爲英語,即使我已經使用當方向更改爲橫向時,Android語言環境得到更改
android:configChanges="locale|orientation|screenSize|keyboardHidden"
清單中
但它沒有工作。
任何人都可以告訴我如何我可以克服這個問題。我有存儲在共享偏好的語言。
private static MyApplication mInstance;
public static final String PREF_NAME = "CoconutMetaData";
public static final String PREF_USER_LANGUAGE_KEY = "userLanguage";
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
SharedPreferences preferences = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
String myLanguage = preferences.getString(PREF_USER_LANGUAGE_KEY,"en");
// Set user specific locale (Language)
Locale mLocale = new Locale(myLanguage);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
conf.setLocale(mLocale);
}
res.updateConfiguration(conf, dm);
/**
* To display overflow menu when hard menu key is pressed (for devices that have hard menu key)
*/
try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
if (menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
} catch (Exception ex) {
}
}
public static synchronized MyApplication getInstance() {
return mInstance;
}
public void setConnectivityListener(ConnectivityReceiver.ConnectivityReceiverListener listener) {
ConnectivityReceiver.connectivityReceiverListener = listener;
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}