Używam Edittextpreference jako jedną z preferencji w sekcji ustawień. Chcę sprawdzić poprawność tego editekstu, gdy użytkownik wprowadzi do niego dane i kliknie przycisk OK; przed zapisaniem go we wspólnejpreferencji.Sprawdzanie poprawności Android EditText Preferencje
Próbuję zrobić coś takiego, ale to zapisuje preferencję, tak jak przypuszczam.
editTextPreference
.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference,
Object newValue) {
if (((newValue.toString().length() == 15) {
// save preference only if length is equal to 15
}
})
});
może ktoś mnie prowadził, jak potwierdzić edittextpreference zanim zostanie on zapisany w sharedpreference tak, że mogę zdecydować, czy chcę, aby go zapisać, czy nie.
Więc jestem ładowanie preferencji z XML przez addPreferencesFromResource (R.xml.settings); i implementacja SharedPreferences.OnSharedPreferenceChangeListener i Preference.OnPreferenceChangeListener w PreferenceFragment zamiast ustawiania go w EditTextPreference w trakcie opisywania. Program nasłuchujący onPreferenceChange nigdy nie jest wywoływany. Tylko funkcja onSharedPreferenceChanged. Czemu myślisz? – marienke
http://stackoverflow.com/a/41446046/956975 <- może mieć z tym coś wspólnego (różnica między SharedPreferences i Preferences). – marienke