我遇到了SQLite表和listview的问题。我已经实现了包含表和数据的数据库,并且可以在列表视图中显示它们。我想编辑运行良好的条目。只有订单不如我想要的那么好。
当我想显示column 1
或column 2
订购的条目并在此之后编辑条目时,我有问题,我使用列表中的位置表中的位置( cursor.moveToNext()
次x
次。
现在我用
读出整个表来解决它SELECT * FROM table ORDER BY column
使用有序数据删除并重新填充表格。然后再次读出并显示它。
但这并不是一种安全的方法。如果应用程序在执行某些工作时崩溃,我可能会丢失数据。有没有一个很好的方法来获取一个参考,我必须在列表视图中编辑而不显示它?或者我应该使用自定义ListView布局和listview的额外数据类,所以我不必编辑整个数据库,只需编辑数据,编辑后我将其重写到数据库中的点?
我没有在SQLite文档中找到类似的功能。但也许我看起来不够深。
谢谢!
答案 0 :(得分:1)
您不应该删除整个数据库只是为了再次填充它。这似乎是一次又一次地浪费时间阅读和删除。
您应该跟踪属于您要编辑的项目的ID。完成编辑后,通过使用id引用它来更新数据库中的特定项目。
我不确定,它位于“列”列中。但是,如果您希望以两种方式对表进行排序,您可以提供另一个列,其中包含要对其进行排序的属性,或者在订购时使用升序/降序来更改顺序。