PreferenceActivity的美妙之處在於它與Android的res/xml
的緊密結合。所有你需要做的實現自我管理優先讀取/保存的魔力,與UI一起,是定義:是否可以使用PreferenceActivity與SQLite而不是res/xml?
public class MyPreferenceActivity extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
}
}
,並定義任何<PreferenceScreen>
結構您在XML文件(S)的需要。
但是,這也似乎是它的弱點:它是如此緊密集成,我不知道是否可以使用PreferenceActivity使用SQLite(一個更有條理的偏好管理),沒有重新發明的,而(即從頭開始重寫整個「PreferenceActivity」)。
例如,使用OnSharedPreferenceChangeListener可以提供網關使用PreferenceActivity使用SQLite,但它仍然需要res/xml
定義要到位 - 所以真的,我們仍然被limitations of the res/xml method限制。
有沒有辦法「吃蛋糕,也有它」?即使用SQLite的使用偏好活動與res/xml
一樣容易。
感謝+1爲您的答案。爲了回答你的問題,在我的OP中,我發佈了一個鏈接到我的早期問題,這幫助我意識到,使用'res/xml'不可能實現**等級鍵控。那裏的建議是使用SQLite。我仍在爲如何實施這一建議而苦苦掙扎。 – uTubeFan
謝謝我沒有看到其他問題。我已經更新了我的答案。 – PravinCG
+1再次概述解決方案。 IIUC,關鍵是通過'onPause()'&'onResume()'讓SQLite與'res/xml'保持同步。這個唯一的鍵可能是'res/xml'文件中嵌套鍵的連接,它一直存在,但由於某些原因,不能由'res/xml'本身使用。我會接受這個答案(除非有更好的答案出現)。謝謝! – uTubeFan