2011-01-21 27 views
6

Tôi đang sử dụng PreferenceActivity để người dùng xác định các cài đặt nhất định cho ứng dụng.PreferenceActivity xác thực đầu vào của người dùng và hiển thị thông báo lỗi

Tôi cũng đang sử dụng giao diện OnPreferenceChangeListener để nhận thông báo về tùy chọn đã thay đổi và trong cuộc gọi lại đó, tôi có thể xác thực đầu vào của người dùng và tôi có thể đưa ra quyết định cập nhật.

Khi tôi phát hiện lỗi xác thực, tôi muốn giữ hộp thoại chỉnh sửa tùy chọn hoạt động trên màn hình, để tôi có thể sử dụng phương thức .getTextEdit(). SetError() để đặt thông báo lỗi để thông báo cho người dùng . Tuy nhiên, tôi đã không thể quản lý để giữ cho hộp thoại hoạt động trên màn hình, vì nó có vẻ như biến mất ngay trước khi gọi lại OnPreferenceChangeListener được thực thi.

Bất kỳ ý tưởng nào?

+0

Tôi không nghĩ rằng điều này có thể được thực hiện, vì tùy chọn không thay đổi cho đến khi người dùng nhấp vào OK và vào thời điểm đó, hộp đã bị đóng, đó là khi người nghe được gọi. Nhưng hey, nếu ai đó có một số ý tưởng hoặc nếu nó có thể được, tôi cũng quan tâm. –

Trả lời

1

Vâng, có không phải là một sự kiện để bạn có thể sử dụng trước khi người dùng đã kết thúc có chỉnh sửa, như được viết trong android dev:

Giao diện chỉ có một phương pháp gọi lại, onSharedPreferenceChanged()

Điều tôi sẽ làm là triển khai tùy chọn tùy chỉnh, (như được giải thích trong http://developer.android.com/guide/topics/ui/settings.html#Custom) Nhưng thay vì mở rộng DialogPreference tôi sẽ mở rộng EditTextPreference. Chưa thử nghiệm, nhưng có vẻ như nó sẽ hoạt động. Chúc may mắn :)

Các vấn đề liên quan