Mamy aplikację na Androida, która działa jako klient dla zdalnego programu na komputerze. Chcielibyśmy dodać funkcję, dzięki której komputer będzie mógł polecić aplikacji na Androida, aby zmieniła ustawienia regionalne w czasie wykonywania, tj. Uruchom aplikację; komunikuj się z komputerem; czasem później komputer powie aplikacji, aby przełączyła się na, powiedzmy, hiszpański lub chiński.Zmienić ustawienia narodowe w czasie wykonywania?
Mamy już skonfigurowane zasoby układu i łańcucha dla ich odpowiednich ustawień narodowych. Nasza aplikacja jest jedyną aplikacją, którą widzi użytkownik, więc nie ma znaczenia, czy reszta urządzenia pozostanie w języku angielskim.
Istnieje inny wątek na ten temat w Change language programmatically in Android, ale wydaje się, że nie dochodzi do wniosku.
Mogę umieścić. . .
Locale locale = new Locale(sTheNewLocale);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
. . . w onCreate() przed setContentView() ale to naprawdę nie pomoże, jeśli chcę zmienić ustawienia regionalne po uruchomieniu mojego ekranu. Czy istnieje sposób na ponowne załadowanie widoku treści po uruchomieniu działania? Czy istnieje więc jakiś praktyczny sposób na niezawodne zmienianie ustawień lokalnych w locie lub czy muszę powiedzieć mojemu szefowi, że nie można tego zrobić, z wyjątkiem ustawienia całego urządzenia na nowe ustawienia regionalne przed uruchomieniem aplikacji?
Metoda 'updateConfiguration()' jest przestarzała. Oto niezastrzeżone rozwiązanie: http://stackoverflow.com/questions/40221711/android-context-getresources-updateconfiguration-deprecated – wilkas
config.locale jest również amortyzowany –
@ HasanAliKaraca, który jest objęty połączoną odpowiedzią. – weston