【问题标题】:How to get the UI look of a PreferenceScreen in Android without Using SharedPreferences如何在不使用 SharedPreferences 的情况下在 Android 中获得 PreferenceScreen 的 UI 外观
【发布时间】:2013-06-23 02:54:27
【问题描述】:

我的意思是我目前有一个将数据存储在 SQLlite 数据库中的应用程序,但我正在努力使数据输入的 UI(一个屏幕上的相当数量的字段)看起来不错。我所做的一切仍然看起来很简单,没有条理。

我想做的是能够按照 Honeycomb/ICS 中引入的设置面板的风格制作一些东西,我知道你可以创建一个偏好屏幕,但问题是它被设计为直接存储到共享偏好,对吗?我想直接存储到我的数据库中的行。

是否可以生成首选项屏幕作为视图但覆盖共享首选项的读/写?或者我应该更接近这个目标,只是重新创建布局结构和样式?使用对字段使用不同视图的 ListView 是否有意义(对我来说似乎有点疯狂)将每个数据库字段显示为列表项?

【问题讨论】:

    标签: android android-layout listview sharedpreferences


    【解决方案1】:

    您可以使用 ListFragment 显示列表中一个数据库行的压缩提取,当用户单击它时,它会切换到仅显示该行但显示所有行的不同片段。

    检查Building a Dynamic UI with Fragments 以获得指针。将 Headlines 替换为部分行信息(当然是从您的数据库而不是数组中填充),并将文章详细信息替换为完整的行信息。

    【讨论】:

    • 对不起,我认为你错过了我所说的重点,我理解 UI 的概念,我实际上是在谈论如何制作一个看起来不错的 UI 输入表单来显示所有字段,我已经有一个显示所有数据库行的列表视图,但它显示的所有文本编辑器和可选设置看起来很乏味
    • 确实,看来我读得太快了,我很抱歉。如果您想使用 Preferences 您可以使用 Preference.OnPreferenceChangeListener 但每次更改首选项时都会调用它,而不是在所有更改完成时调用它,因此您可能希望它更新 PreferenceActivity 中某处的数据并在它完成提交时到数据库,但它仍会将首选项保存到 XML。如果不只是在 ScrollView 中使用 LinearLayout 或 GridLayout(API 14 或支持 lib v7),请让他们更新本地副本并在单击保存按钮时提交。为什么要使用 ListView?
    猜你喜欢
    • 2013-01-16
    • 1970-01-01
    • 2017-02-21
    • 1970-01-01
    • 2019-12-31
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    • 2022-01-05
    相关资源
    最近更新 更多