Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I'm not saying this is a good answer but to possibly help others, I've been able to make a temporary solution to what I want:</p> <p>I've put my change listener creation inside a method called setupListener.</p> <pre><code>/* FORCE XML TO BE RELOADED */ /* remove existing preferences */ PreferenceScreen prefScreen = getPreferenceScreen(); prefScreen.removeAll(); /* add preference screen */ MyPrefClass.this.addPreferencesFromResource(R.xml.preferences); /* re-add listener */ Preference langPref = (Preference) findPreference("languageLocale"); MyPrefClass.this.setupListener( langPref ); </code></pre> <p>The state of the preference isn't switching properly for me yet but I'm going to live with it for now.</p> <p><strong>Updated full code:</strong></p> <pre><code>protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); /* add language listener */ Preference langPref = (Preference) findPreference("langLocale"); this.setupListener( langPref ); } protected void setupListener( Preference preference ) { preference.setOnPreferenceChangeListener( new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { /* set master config */ Locale locale2 = new Locale( newValue.toString() ); Locale.setDefault(locale2); Configuration config2 = new Configuration(); config2.locale = locale2; /* add preference screen */ getBaseContext().getResources().updateConfiguration(config2, getBaseContext().getResources().getDisplayMetrics()); /* remove existing preferences */ PreferenceScreen prefScreen = getPreferenceScreen(); prefScreen.removeAll(); LusilKanjiDrawPreferences.this.addPreferencesFromResource(R.xml.preferences); setTitle(R.string.app_name_title); /* re-add listener */ Preference langPref = (Preference) findPreference("langLocale"); LusilKanjiDrawPreferences.this.setupListener( langPref ); return true; } }); } </code></pre> <p><strong>Warning</strong>: some of the methods are deprecated now. Will have to look into possible changes myself.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload