對於我的應用程序,我有一套相當複雜的配置選項,用戶可以從中選擇。我目前使用PreferenceActivity作爲這些選項的用戶界面,並使用共享首選項存儲選項。由於一些設置一個例子,我必須適應:對實現複雜首選項屏幕的最佳方法?
解釋:選擇背景圖案時,用戶可以選擇從1至5不同的形狀使用(其中每個形狀是.PNG文件)併爲每個形狀分配一個int顏色。例如,用戶可以選擇橙色正方形,綠色三角形和紅色矩形。
分層數據:我的應用程序的一部分可以配置爲使用五種模式之一。每種模式都有一些相關的獨特設置,例如一種模式需要選擇兩個整數,另一種模式可能需要選擇一個布爾值。
然而,我的感覺是PreferenceActivity不會像上面,因爲設置很好地工作:
- 共享偏好不能存儲列表。
- 共享首選項不能存儲分層數據。
- 將我的偏好界面沸騰到例如用於配置每種顏色以及使用相關首選項來禁用不適用於當前模式的首選項的個別首選項按鈕將導致混亂且難以使用的界面。
我可以編寫自己的Preference類來配置列表,但我發現這些實現比實現典型的View更加費力,而且我仍然需要處理存儲問題。
我的計劃是:
- 只實現一個自定義GUI自定義活動。這給了我更多的自由來做一個好的界面來配置列表,並且我可以智能地隱藏不適用於當前模式的選項。
- 將我的所有設置存儲在XML文件中或串行化Java對象。這意味着我可以輕鬆支持分層數據和可變長度列表,這爲進一步的擴展提供了空間。
這個計劃看起來是否合理?我擔心我沒有做Android的方式,但在我看來,共享首選項和PreferenceActivity不適合我的需求。
感謝您的意見。我已經有了一些工作首選項屏幕,可以與一些自定義首選項部件一起工作,但是工作起來並且存在我提到的保存/加載和界面問題是一件非常麻煩的事情。我的計劃是去除你所擁有的,除非我會避免使用共享首選項來支持使用Java序列化。例如,我可以將東西放在ArrayList中並將其保存爲持久列表。 – rbcc 2011-02-04 00:03:26