In meiner App habe ich ein spezielles Menü, wo ich Anwendungssprache ändern kann.Ich bekomme Etiketten von Projekt-API (durch Parsen von JSON) und Projektwerte xml.Kann ich ändern Android-Sprache ohne Neustart der Anwendung und сhangibg Systemsprache.Ändern android application language
Antwort
Fügen Sie diese Methode ein und rufen Sie sie auf, um die Sprache zu ändern.
private void setLocale (String localeCode , Bundle b){
Log.d(TAG+"set location function: "+localeCode);
locale = new Locale(localeCode);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
getApplicationContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
UserDetail.this.getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
onCreate(null);
}
Auf Toggle-Änderung oder jede Auswahl Anruf Wert wie folgt aus:
setLocale("en-us",savedInstanceStat); // for english
setLocale("ar",savedInstanceStat); // for arabic
können Sie die Umschalttaste verwenden, um die Sprache zu ändern und die ausgewählte Sprache programmatisch in Ihrer App einzustellen, ohne die App zu schließen.
1.überprüfen Sie, welche Sprache ausgewählt ist?
String prefsToogleStr = getSharePrefrenceLocale();
Log.d("tag", "CtrlDashBoard prefsToogleStr" + prefsToogleStr);
if (prefsToogleStr.equalsIgnoreCase("en")) {
toggleLocaleButton.setChecked(true);
CommonMethod.setLocale("en", viewDashBoard);
} else {
CommonMethod.setLocale("ur", viewDashBoard);
toggleLocaleButton.setChecked(false);
}
////////////////////////////////////////
public String getSharePrefrenceLocale() {
SharedPreferences prefs = viewDashBoard.getSharedPreferences(
viewDashBoard.getPackageName(), ViewDashBoard.MODE_PRIVATE);
return prefs.getString("locale", "en");
}
2.Ändern Sprache in Umschaltknopf Kontrollwechsel Hörer:
// Locale Toogle
toggleLocaleButton
.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if (buttonView.isChecked()) {
setSharePrefrenceLocale("en");
CommonMethod.setLocale("en", viewDashBoard);
} else {
setSharePrefrenceLocale("ur");
CommonMethod.setLocale("ur", viewDashBoard);
}
dialog.dismiss();
}
});
}
//////////////////////////// ////////
public void setSharePrefrenceLocale(String locale) {
SharedPreferences prefs = viewDashBoard.getSharedPreferences(
viewDashBoard.getPackageName(), ViewDashBoard.MODE_PRIVATE);
Editor editor = prefs.edit();
editor.putString("locale", locale);
editor.commit();
}
///////// /////////////////////////////
Haupt Methode: Aufruf
public static void setLocale(String localeName, Context context) {
Locale locale = new Locale(localeName);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
context.getResources().updateConfiguration(config,
context.getResources().getDisplayMetrics());
}
Ich hoffe, Sie verstehen .this ist nützlich für dich.
Hey Dank dafür teilen, aber es hilft nichts, was auch bei einem Neustart des App – Tony
- 1. Android: Programmgesteuert ändern Android: Name Attribut für Application und BroadcastReceiver
- 2. android: Multi-Language-Datenbank-Ausgabe
- 3. Understanding Android Application Lifecycle
- 4. Android Application Monitoring Airtime
- 5. Android - Set Application Hintergrund
- 6. Android Application Update Notification
- 7. Android Mobile Application Absturz
- 8. Android Application Building Alternativen
- 9. Android Application Specific Videodateischutz
- 10. Android Application Lock
- 11. Header mit IIS7 Application Request Routing ändern
- 12. Android Multi-Language-Unterstützung ohne Lokalisierung
- 13. Facebook android, get application stream - Android
- 14. Android Web Application Submission-Prozess
- 15. Inflator in Android Application Development
- 16. Wie SIM Application Toolkit So ändern (STK) Rooted Mobil
- 17. Change language Kontaktformular
- 18. yii2 framework message language
- 19. Android-Symbol nicht ändern
- 20. virtuemart 2 change language nativer
- 21. So aktivieren Sie Android Open Application Sprachinteraktion
- 22. Kann Android Service Application-Objekt überleben?
- 23. Android Application Klassenmethode onCreate wird mehrmals aufgerufen
- 24. Application Publisher
- 25. Cross-Plattform Mobile Development Language
- 26. Citation Style Language "wenn dann"
- 27. Wie bekomme ich Any Application Hintergrunddaten Usage Status in Android
- 28. Windows Assembly Language Programmierung
- 29. JavaScript Language Reference Manual
- 30. Aktuelle Go Language Projects
'OnCreate (null)' wird Ursache Ausnahme. Sie müssen 'repreate()' aufrufen; –