2011-01-21 88 views
6

我正在使用PreferenceActivity爲用戶定義應用程序的某些設置。PreferenceActivity驗證用戶輸入並顯示錯誤消息

我還使用OnPreferenceChangeListener接口來獲取更改的首選項的通知,並且在該回調中,我可以驗證用戶的輸入,並且可以在拒絕用戶輸入時作出更新決定。

當我檢測到驗證錯誤時,我想讓偏好編輯對話框在屏幕上保持活動狀態,以便我可以使用.getTextEdit().setError()方法設置錯誤消息以通知用戶。但是,我無法設置保持對話框在屏幕上處於活動狀態,因爲它在OnPreferenceChangeListener回調執行之前好像消失了。

任何想法?

+0

我不認爲這是可以做到的,因爲在用戶點擊確定之前,首選項不會改變,那時候這個盒子已經關閉了,也就是說當監聽器被調用時。但是,嘿,如果有人有一些想法或者如果可能的話,我也感興趣。 – 2011-06-21 17:26:53

回答

1

那麼,有沒有讓你在使用前用戶已完成了編輯的事件,寫在Android開發人員:

的接口只有一個回調方法,onSharedPreferenceChanged()

我會做的是實現自定義首選項 (如http://developer.android.com/guide/topics/ui/settings.html#Custom中所解釋) 但是,我不會擴展DialogPreference,而是擴展EditTextPreference。 雖然沒有測試過,但聽起來像它應該工作。祝你好運:)

相關問題