Android contexte.getResources.updateConfiguration() obsolète
Tout récemment contexte.getResources().updateConfiguration() a été dépréciée dans les API Android 25 et il est conseillé d'utiliser le contexte.createConfigurationContext() au lieu de cela.
Personne ne sait comment createConfigurationContext peuvent être utilisés pour remplacer les paramètres régionaux du système android?
avant que cela serait fait par:
Configuration config = getBaseContext().getResources().getConfiguration();
config.setLocale(locale);
context.getResources().updateConfiguration(config,
context.getResources().getDisplayMetrics());
Que diriez - applyOverrideConfiguration (non testé)?
il y a aussi une solution simple, ici , très semblable à celui-ci stackoverflow.com/questions/39705739/...
[updateConfiguration était dépréciée de l'API de niveau 25] developer.android.com/reference/android/content/res/Resources
il y a aussi une solution simple, ici , très semblable à celui-ci stackoverflow.com/questions/39705739/...
[updateConfiguration était dépréciée de l'API de niveau 25] developer.android.com/reference/android/content/res/Resources
OriginalL'auteur Bassel Mourjan | 2016-10-24
Vous devez vous connecter pour publier un commentaire.
Inspiré par La calligraphie, j'ai fini par créer un wrapper de contexte.
Dans mon cas, j'ai besoin de remplacer le système de la langue de fournir à mes utilisateurs de l'application avec la possibilité de changer d'application de la langue, mais ce qui peut être personnalisé avec toute la logique que vous avez besoin de mettre en œuvre.
et d'injecter votre enveloppe, dans chaque activité, ajoutez le code suivant:
Mise à JOUR 10/19/2018
Parfois, après un changement d'orientation, ou de l'activité mettre en pause/reprendre la Configuration de l'objet se remet à défaut de la Configuration du système et dans la suite, nous verrons l'application de l'affichage en anglais "fr" texte même si nous avons terminé le contexte français "fr" locale. Par conséquent, et comme une bonne pratique, ne jamais conserver le Contexte/l'Activité de l'objet dans une variable globale dans des activités ou des fragments.
en outre, de créer et d'utiliser les éléments suivants dans un MyBaseFragment ou MyBaseActivity:
Cette pratique va vous fournir 100% sans bug solution.
Pourquoi voulez-vous prolonger la ContextWrapper? Vous n'avez rien, juste des méthodes statiques?
Je devais prendre createConfigurationContext/updateConfiguration de si-branche else et ajouter en dessous, sinon dans la première Activité, tout était ok, mais lors de l'ouverture de la deuxième, la langue de revenir à l'appareil par défaut. Ne pouvais pas trouver la raison.
J'ai ajouté le besoin de ligne et de poste en tant que ce principe: gist.github.com/muhammad-naderi/...
est droit. Les paramètres régionaux du système est modifié correctement, mais la configuration de passe par défaut. En conséquence, les chaînes de fichier de ressources revient à la valeur par défaut. Est-il un autre moyen, autre que le paramètre de configuration à chaque fois dans chaque activité
OriginalL'auteur Bassel Mourjan
Sans doute comme cela :
Bonus : Un article de blog qui utilisent createConfigurationContext()
Merci!!!! J'ai hâte de lire votre code
API 24+... Stupide google, peuvent-ils pas nous fournir un moyen simple?
En disant: "C'est simple, si vous ne cible que ces dispositifs" n'est pas vraiment simple.
Il y a une méthode simple si vous n'avez pas besoin de dispositifs de soutien qui ont été faits avant 2012. Bienvenue sur le développement de l'application!
OriginalL'auteur compte14031879
Inspiré par la Calligraphie & Mourjan & moi, j'ai créé cette.
vous devez d'abord créer une sous-classe de la Demande:
ensuite, vous devez définir à votre AndroidManifest.xml application tag:
et les ajouter à votre AndroidManifest.xml l'activité de la balise.
noter que pref_locale est une ressource de chaîne comme ceci:
et coder en dur "fr" est par défaut lang si pref_locale n'est pas sertie
OriginalL'auteur Mahpooya
Voici @bassel-mourjan de la solution avec un peu de kotlin bonté 🙂 :
Et voici comment l'utiliser:
OriginalL'auteur Michael
Essayez ceci:
Il crée l'activité u besoin de changer de contexte avec un nouveau
OriginalL'auteur Eric B.
il existe une solution simple avec contextWrapper ici : Android N changer la langue par programmation
Attention à la recréer() la méthode
vous avez raison, je suis tout nouveau sur stackoverflow et j'ai pensé qu'il serait erroné de prendre des crédits pour la réponse donc je poste le lien de l'auteur original
OriginalL'auteur Thanasis Saxanidis