Kraft "locale" in der Anwendung

Will ich drehen mein Handy und halten Sie das Gebietsschema. Ich habe Ordner, Werte, Werte-en und den Wertenhr. Bei jeder Aktivität habe ich

android:configChanges="keyboardHidden|orientation|locale"

und in jeder activity.java - Datei habe ich

private Locale locale = null;

@Override
public void onConfigurationChanged(Configuration newConfig)
{
    super.onConfigurationChanged(newConfig);
    if (locale != null)
    {
        newConfig.locale = locale;
        Locale.setDefault(locale);
        getBaseContext().getResources().updateConfiguration(newConfig, getBaseContext().getResources().getDisplayMetrics());
    }
}

und in onCreate

    SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);               
    Configuration config = getBaseContext().getResources().getConfiguration();

    String lang = settings.getString("language","en");
    if (! "".equals(lang) && ! config.locale.getLanguage().equals(lang))
    {
        locale = new Locale(lang);
        Locale.setDefault(locale);
        config.locale = locale;
        getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
    }

Funktioniert es, bis ich drehen meine Telefon - app wird noch gearbeitet, die Tasten und alles ist in Ordnung - aber Gebietsschema ist immer seltsam - manchmal ist es meine locale (hr) manchmal es ist (en)...

Was ich sonst noch hinzufügen müssen?

Warum sind Sie die Unordnung mit dem Gebietsschema, das im Gegensatz zu vermieten das android-system handle es für Sie?
Ich glaube, das kann eine doppelte Frage: stackoverflow.com/questions/3711712/..., Bitte korrigieren Sie mich, wenn ich falsch bin.
Bitte werfen Sie einen Blick auf meine Lösung: stackoverflow.com/a/9535374/498067 . Es ist sehr einfach und erfordert keine änderungen in Ihren Aktivitäten.
Bist du nicht vergessen zum zurücksetzen der contentView e.g setContentView(R. layout.mylayout)?

InformationsquelleAutor svenkapudija | 2011-01-14

Schreibe einen Kommentar