onPreferenceChange method isn't called when Listpreferences changes
11,074
Change your onCreate
code to:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefs);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.registerOnSharedPreferenceChangeListener(this);
}
You are not adding the registerOnSharedPreferenceChangeListener
to PrefsActivity
Activity.
![Reza_Rg](https://i.stack.imgur.com/pYRTF.jpg?s=256&g=1)
Comments
-
Reza_Rg almost 2 years
I have a Preferences Activity in my code. I want to show a toast when ever user change radio button in a ListPreferences. I used this code but it does not work. :(
public class PrefsActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.prefs); } public void onSharedPreferenceChanged(SharedPreferences arg0, String key) { ListPreference listPreference = (ListPreference) findPreference(key); listPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { // TODO Auto-generated method stub Toast.makeText(PrefsActivity.this, "second", Toast.LENGTH_LONG).show(); return false; } }); } }
what is my problem?
-
Reza_Rg over 11 yearsYes! That was my mistake, Thank you. :)
-
Reza_Rg over 11 yearsnow, I have another problem. :( when i click on one of radio buttons in listpreferences, it toast what i want, but it dose not update value in listpreferences.
-
Mr_and_Mrs_D over 11 years@Reza_Rg : you return false from
onPreferenceChange
- lol - did you read what it does ? - at ρяσѕρєя K - why not unregistering ? -
Reza_Rg over 11 years@Mr_and_Mrs_D Unregister what ?