2011-07-02 65 views
1

我有一個用於編輯某個對象的活動。目前它的佈局是一個簡單的形式,但我希望它更喜歡偏好活動。我想使用那裏可用的相同佈局(例如CheckBoxPreference),但將更改保存到我的對象而不是首選項。有沒有一種簡單的方法可以讓活動看起來像偏好,但不在後端使用偏好?非偏好數據的首選項佈局

回答

3

您可以使用接下來的2個步驟實現這一目標:

  1. 組偏好是不持久的通過android:persistent="false"在XML或通過代碼setPersistent(false)。這種方式默認SharedPreferences將不會修改時,用戶更改首選UI中的值。

  2. 通過使用setOnPreferenceClickListener註冊的OnPreferenceChangeListener聽衆處理值更改。這將允許您攔截更改並按照您的需要處理它們。

+0

謝謝。第二個選項對我來說很有意義,因爲我有另一個全局偏好頁面,它是持久的,並且需要以這種方式 – nambar

+0

嗨,抱歉提高了一年的評論,但是這通常是一種很好的編碼方式,或者我應該從頭開始編寫表單?我還希望簡單地使用自動適應操作系統主題的首選項表單,而不是從頭開始手動創建表單+主題。感謝您的任何幫助 – wired00

0

是的,你可以提供自己的執行SharedPreferences和您的數據保存到某個地方,是不是喜好,而仍然使用相同的用戶界面和XML定義。見this questionthis link。示例鏈接非常複雜,因爲它將數據直接寫回數據庫,但用普通的Map替換它很容易,然後從Map中將數據檢索到對象中。或者,如果您希望立即保存數據,只需將其直接寫入您的對象。

+0

謝謝!看起來像我所需要的 – nambar