晚上好一個FieldEditorPreferencePage中,設置默認在通過ScopedPreferenceStore,是
與Java 1.7我試圖覆蓋使用類似下面的代碼片段一個FieldEditorPreferencePage中的performApply()
方法。 (額外的代碼不會有所作爲,僅這一個方法)
@Override
public void performApply() {
scopedPreferenceStore.setDefault(PREF_KEY, value);
super.performApply();
}
基本上我想爲PREF_KEY
更新默認優先值,所以當用戶點擊應用更改後還原爲默認值,它採用了新的價值而不是舊的。
問題是,如果我這樣做,當我重新運行我的程序時,不會存儲新的默認值。如果我放棄使用setDefault()
,則存儲新的默認值。
爲了進一步澄清
隨着使用setDefault
:
如果我改變偏好到100,點擊應用,改變優先級A到25,然後單擊還原爲默認值,我會看100。如果我重新啓動我的程序,並期待在偏好AI見50
不使用默認設置:
如果我改變偏好到100,點擊Apply,然後單擊還原爲默認值,我會看50.但如果我改回100,cl ick apply,然後重新啓動我的程序,並看看首選項A,我看到100.
什麼是造成這種行爲,我怎麼能解決它?
注意:我正在使用首選項初始值設定項,但是我希望動態地將默認值更改爲上次應用的用戶輸入,而沒有上面提到的奇怪行爲。
我試圖更改默認的動態初始化 – pianoisland
後,您不能動態地更改默認。默認值不會存儲在任何地方,下次重新啓動時將恢復到首選項初始值設定項值。 –