0

我們在我們的Android應用程序中共使用6種語言,用戶可以從中選擇。我們以編程方式設置區域設置。語言爲 英文,印地文,泰米爾語,Telegu,卡納達語,馬拉雅拉姆語,馬拉地語。在Android應用程序中更改語言時的應用程序狀態更改

使用下面的代碼我們更改應用程序的語言。

locale = new Locale(lang); 
Locale.setDefault(locale); 
Configuration conf = new Configuration(config); 
conf.locale = locale; 

getApplicationContext().getResources().updateConfiguration(conf,getBaseContext().getResources().getDisplayMetrics()); 

當我們改變印地文和英文應用之間的語言能夠從共享偏好獲取數據,但對於其他語言,它在同一查詢返回null。請幫助

更新1:以下是由於您使用的字符串值,以獲得從sharedpreferences R.string.shared_prefs_key的數據,這就是爲什麼在問題發生時從共享偏好

SharedPreferences sharedPrefs = context.getSharedPreferences(context.getString(R.string.shared_prefs_key), Context.MODE_PRIVATE); 
    String value = sharedPrefs.getString(key, null); 
+0

'它返回null相同query.'表演工作 –

回答

0

檢索數據的代碼,因爲將鍵在不同的語言字符串中改變。而且由於數據是在不同的密鑰中存儲的,因此其他語言密鑰將爲空。

變化是在一個恆定值象下面這樣:

SharedPreferences sharedPrefs = context.getSharedPreferences("<your key>", Context.MODE_PRIVATE);