Stworzyłem aplikację na Androida (posiadającą dwa języki). Wprowadziłem moje ciągi zasobów w dwóch plikach:Po obróceniu ekranu język mojej aplikacji zostanie zmieniony
For Persian language (default)
values/strings_locale.xml
For English language
values-en/strings_locale.xml
I moje pierwsze uruchomienie aktywny mam wstawiony następujący kod:
Configuration c = new Configuration(this.getResources().getConfiguration());
c.locale = new Locale("fa_IR");
this.getResources().updateConfiguration(c, this.getResources().getDisplayMetrics());
Więc po tym kodzie mój język domyślny będzie perski i wszystkich ciągi we wszystkich działaniach są wyświetlane w języku perskim poprawnie.
Ale problem pojawia się, gdy ekran urządzenia jest obrócony, wszystkie ciągi są wyświetlane w języku angielskim i ma to miejsce w przypadku wszystkich innych czynności! I muszę zamknąć i ponownie otworzyć moją aplikację.
Dlaczego tak się dzieje i jak mogę rozwiązać ten problem?
Sprawdź [dokumentacja ta] (http://developer.android.com/guide/components/activities.html), gdy Aktywność jest odtwarzana po obrocie, powyższy kod prawdopodobnie nie jest uruchamiany ponownie ... upewnij się, że umieściłeś kod w miejscu, w którym można go ponownie przetworzyć po obrocie. – Mikel