0

Nous utilisons un total de 6 langues dans notre application Android, dont l'utilisateur peut choisir. Nous définissons les paramètres régionaux par programmation. Les langues sont Anglais, Hindi, Tamoul, Telegu, Kannada, Malayalam, Marathi. En utilisant le code ci-dessous, nous changeons la langue de l'application.État de l'application Modifications lors du changement de langue dans l'application Android

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

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

Lorsque nous changeons la langue entre l'application hindi et l'anglais est en mesure d'obtenir les données de préférences partagées, mais pour les autres langues, il renvoie NULL pour la même requête. S'il vous plaît aider

Mise à jour 1: Voici le code pour récupérer des données de préférence partagée

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

'elle renvoie NULL pour le même travail de spectacle query.' –

Répondre

0

Puisque vous utilisez la valeur de chaîne pour obtenir les données de sharedpreferences R.string.shared_prefs_key qui est la raison pour laquelle les problèmes se produit parce que la clé serait changer dans une chaîne de langue différente. Et puisque les données ont été stockées lors de la clé différente, il donne null pour les autres clés de langue.

Un changement qui à une valeur constante comme ci-dessous:

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