0

最初の Android アプリケーションを完成させたばかりですが、まだ修正すべき小さな問題があります。2 つの言語でアプリを作成しました。私の電話がフランス語で実行するように設定されている場合、アプリはフランス語で表示され、電話が英語に設定されている場合は英語で実行されています 問題は、アプリのユーザーが選択できるように、共有設定値を作成したことです彼の好みの言語を手動で変更しましたが、残念ながらそれは機能していません。

これは私の共通の好みです:

 <ListPreference
        android:defaultValue="English"
        android:entries="@array/Languages"
        android:entryValues="@array/LanguagesValues"
        android:key="language"
        android:summary="@string/Define_the_default_language"
        android:title="@string/Language" />

これが私がそれを実装しようとした方法です:

SharedPreferences pref = PreferenceManager
            .getDefaultSharedPreferences(this);
    lan = pref.getString("language", null);
    Log.e("langues", lan);

    SharedPreferences prefs = this.getSharedPreferences("language", 0);
    listener = new SharedPreferences.OnSharedPreferenceChangeListener() {

        public void onSharedPreferenceChanged(SharedPreferences prefs,
                String key) {
            prefs.registerOnSharedPreferenceChangeListener(listener);
            if (lan.equals("FRENSH")) {
                setLocale("FRENSH");
                System.out.println("frensh");

SetLocal アクティビティ:

    public void setLocale(String lang) {
    myLocale = new Locale(lang);
    Resources res = getResources();
    DisplayMetrics dm = res.getDisplayMetrics();
    Configuration conf = res.getConfiguration();
    conf.locale = myLocale;
    Log.e("", "" + myLocale);
    res.updateConfiguration(conf, dm);
    Intent refresh = new Intent(this, Setting.class);
    startActivity(refresh);
}

どうすれば修正できますか?

4

1 に答える 1