Android: Sprache Ändern programmgesteuert
Habe ich 3 buttons um Sprache zu ändern. So muss ich die Methode, wo könnte ich die Zuhörer zu Tasten, was könnte sich ändern, die Sprache jedesmal, wenn Sie gedrückt werden.
Ich habe versucht, diese https://stackoverflow.com/a/2900144/1088229 so aber es ändert Gebietsschema nur einmal, und scheint, dass dies nicht mehr funktioniert, (wenn ich Sie wieder, es ist nicht einmal reagieren). Also ich habe changeLanguageListener()
Ende der Hörer, so Zuhörer aktualisiert wird.
Also ist es So ok, wie ich es gelöst oder gibt es einen anderen Weg?
private void changeLanguageListener() {
final Button butEn = (Button) findViewById(R.id.button_language_en);
final Button butLt = (Button) findViewById(R.id.button_language_lt);
final Button butRu = (Button) findViewById(R.id.button_language_ru);
OnClickListener listener = new OnClickListener() {
public void onClick(View v) {
Button but = (Button) v;
Resources res = getResources();
String current = res.getConfiguration().locale.getCountry();
Log.i("Current", current);
String localeString = new String(current);
if (but.equals(butEn)) {
localeString = "en";
} else if (but.equals(butLt)) {
localeString = "lt";
} else if (but.equals(butRu)) {
localeString = "ru";
}
Log.i("Clicked", localeString);
if (!current.equalsIgnoreCase(localeString) && localeString.length() > 0) {
//Change locale settings in the app.
DisplayMetrics dm = res.getDisplayMetrics();
android.content.res.Configuration conf = res.getConfiguration();
conf.locale = new Locale(localeString.toLowerCase());
res.updateConfiguration(conf, dm);
//refresh menu
setGridView();
//added this line to get refreshed listener
changeLanguageListener();
}
}
};
butEn.setOnClickListener(listener);
butLt.setOnClickListener(listener);
butRu.setOnClickListener(listener);
}
InformationsquelleAutor Paulius Vindzigelskis | 2012-05-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
So, weil der nur zwei Vorgänge (zwei Menü-Modi), wo lasse ich auf Gebietsschema ändern, die ich einfach nur neu starten, Aktivität direkt nach Gebietsschema ändern, damit alles aktualisiert wird. Nicht finden, eine andere bessere Lösung
InformationsquelleAutor Paulius Vindzigelskis
Wenn Sie eine Sprache haben bestimmte Inhalte - Sie können ändern, die auf der Basis der Einstellung.## Überschrift ##
InformationsquelleAutor Ramkailash
Ich würde nicht empfehlen, ändern Sie die Sprache in Ihrer Anwendung. Eine bessere Lösung wäre ein button, öffnet sich die Systeme locale-Einstellungen. Sie können mit dem folgenden Vorsatz für dieses.
Weitere Infos über die locale-Einstellungen:
http://developer.android.com/reference/android/provider/Settings.html#ACTION_LOCALE_SETTINGS
würde nicht empfehlen, ändern Sie die Sprache in Ihrer Anwendung" Warum nicht? Es gibt viele Fälle, in denen eine Anwendung ändern können, eine Sprache zu helfen, eine end-Benutzer. Zum Beispiel, ein erste-Hilfe-app zeigt die Sprache ein tourist spricht, um Ihnen zu ermöglichen zu verstehen, Sanitäters Anweisungen, während Sie behandelt werden, für die Verletzungen, die in einem fremden land.
Ihr Fall ist in der Tat ein sehr gutes Beispiel, wo ein in-app-änderungen wirklich sinnvoll und notwendig sind. Aber im Allgemeinen Fall ich lieber mit dem system zu behandeln, in welcher Sprache die app sein sollte.
InformationsquelleAutor Moss