【问题标题】:How to save listview in android and fetch it back when required?如何在android中保存listview并在需要时将其取回?
【发布时间】:2015-12-14 04:50:46
【问题描述】:

我有一个包含三个字段的列表视图,但我不知道如何将我的列表视图保存在 android 并在用户打开应用程序并显示它时取回。

我想显示保存在列表视图中的数据,我必须保存用户输入到我的列表视图中的新数据。

【问题讨论】:

  • 使用数据库代替...

标签: android android-listview android-sqlite android-networking


【解决方案1】:

我建议在服务器上安装某种数据库来保存该信息,并且您需要从数据库中提取该信息以将其显示在应用程序中。然而,android 也有一个叫做 sharedpref 的东西,它允许你在应用程序关闭时保存应用程序中的内容。链接如下。然而,这不是数据库的最佳方式,但它可能满足您的需求。

http://developer.android.com/reference/android/content/SharedPreferences.html

【讨论】:

  • 如果您尝试使用 SharedPreferences 做任何复杂的事情,很快就会变得非常乏味;您只能存储原始类型,它是一个简单的键/值系统。因此,SharedPreferences 用于简单数据的轻量级存储。
【解决方案2】:

根据您的要求,没有直接存储列表视图的方法,但是您可以将数据存储在列表视图中,稍后您可以将其设置到ListView中,因为您必须使用Sqlite数据库,参考官方sqlite here 的文档,还可以查看 this 示例。

也阅读this 示例(来自 SQLiteDatabase 的数据列表视图)

【讨论】:

    【解决方案3】:

    这取决于您应用的目的和要求。如果您正在开发离线应用程序,那么您应该保存在列表视图中输入的数据。

    同样,有多种方法可以让用户输入数据。您可以使用 FAB(浮动操作栏)或在最后一个列表视图项中有一个文本框。

    一旦用户输入了数据,你应该将它保存到一个后台线程中的sqlite数据库并调用listview适配器上的notifyDatasetChanged()方法 让更改反映在视图上。

    如果您必须通过网络发送它以将其存储在您的服务器中,您应该使用 AysncTask 或 Handler 线程模型在后台线程上进行网络连接,或者使用 volley 或 picasso 等库让它变得简单。

    希望这有帮助!

    PS:使用 ViewHolder 模式来提高 ListView 的性能。或者有来自 Android 5.0 的 RecyclerView。

    【讨论】:

    • 来自 Lollipop 的 RecyclerView ?
    • 更新了答案。 RecyclerView 从 5.0(也可用于 V7 支持库)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-19
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    相关资源
    最近更新 更多