android - 关于在ListView上显示的高效查询

标签 android sql sqlite listview

我是 SQL 的初学者。 我想在 Android listview 上显示 sqlite 数据。该表具有以下结构。

| _id | name | data | ...
---------------------
|   0 |   A  |  abc |
|   1 |   B  |  def |
|   2 |   C  |  ghi | ...
|   3 |   D  |  jkl |
|   4 |   E  |  mno |

因此,当用户输入 [C, B, D] 时,我想按用户的顺序 显示名称和数据列。 例如,

ListView

---------------------
     C     ghi
---------------------
     B     def
---------------------
     D     jkl
---------------------

我现在在使用 ArrayAdapter 和 CursorAdapter 之间左右为难。

我应该执行 SELECT 3 次,将值存储在数组中,然后使用 ArrayAdapter 吗?或者,用SELECT一次就可以满足我的要求吗?

提前致谢。

最佳答案

这会有点复杂,但可以在单个查询中完成。

SELECT * FROM yourTable
ORDER BY 
  CASE name
    WHEN 'C' THEN 0
    WHEN 'B' THEN 1
    WHEN 'D' THEN 2
  END

当然,您必须根据用户输入构建查询 . Look more here

关于android - 关于在ListView上显示的高效查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10276250/

相关文章:

database - 我如何在 sqlite 数据库中使用 Unicode 字符,例如日耳曼元音变音符?

java - 适用于 Android 中小型应用程序的线程外数据库接口(interface)

Python:将 QByteArray 插入 SQLite

android - 如果从非 Activity 类调用,setDisplayHomeAsUpEnabled(true) 不显示箭头

android - 通过对话框更改首选项

Mysql IF条件Left Join同一张表两次

mysql - 为什么 MySQL 在运行查询时不使用我的索引?

android - Eclipse 无法识别 Android 设备,但 adb 可以

android - 隐藏 android 开关按钮的默认文本

mysql - SQL按一组获取用户,排除其他用户