Tôi đang sử dụng Edittextpreference làm một trong các tùy chọn trong phần cài đặt. Tôi muốn xác thực edittextpreference này khi người dùng nhập dữ liệu vào nó và nhấn ok; trước khi lưu nó trong sharedpreference.Xác thực tùy chọn chỉnh sửa Android Edit
Tôi đang cố thực hiện một việc như thế này nhưng điều này sẽ lưu tùy chọn đầu tiên tôi giả sử.
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
}
})
});
ai đó có thể hướng dẫn cho tôi làm thế nào để xác nhận edittextpreference trước khi nó được lưu trong sharedpreference để tôi có thể quyết định nếu tôi muốn lưu nó hay không.
sở thích Vì vậy, tôi tải từ xml qua addPreferencesFromResource (R.xml.settings); và triển khai SharedPreferences.OnSharedPreferenceChangeListener và Preference.OnPreferenceChangeListener trong PreferenceFragment thay vì đặt nó vào EditTextPreference như bạn mô tả. Trình nghe onPreferenceChange không bao giờ được gọi. Chỉ có hàm onSharedPreferenceChanged. Tại sao bạn nghĩ rằng? – marienke
http://stackoverflow.com/a/41446046/956975 <- có thể có liên quan gì đó (sự khác biệt giữa SharedPreferences và Preferences). – marienke