Ich habe eine Voreinstellung Aktivität in meinem Code. Ich möchte einen Toast zeigen, wenn Benutzer Radio Optionsfeld in einer Listpreferences ändern. Ich habe diesen Code verwendet, aber es funktioniert nicht. :(onPreferenceChange-Methode wird nicht aufgerufen, wenn Listpreferences sich ändert
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;
}
});
}
}
was ist mein Problem
Sie sollten diese neuen Informationen bearbeiten in Ihre bestehende Frage ein: [Zeigen Sie einen Toast, wenn die Benutzereinstellung in den Einstellungen geändert wird] (http://Stackoverflow.com/q/13665409/1267661), anstatt ein neue Frage. Bitte lesen Sie die [FAQ] über akzeptable Wege, um mehr Aufmerksamkeit auf Ihre Fragen zu bekommen. – Sam
@Reza_rg: Sie haben versucht "Log.V (" ListPreference "," onPreferenceChange ");' zu sehen, ob onPreferenceChange in logcat aufgerufen wird oder nicht? –
@imrankhan Ich habe es jetzt versucht, und es scheint onPreferenceChange nicht aufgerufen zu werden. was sollte ich jetzt tun? –