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