Android - 从 sqlite 获取字符串数据并使用 if 条件更改列表视图输入
Posted
技术标签:
【中文标题】Android - 从 sqlite 获取字符串数据并使用 if 条件更改列表视图输入【英文标题】:Android - Fetching string data from sqlite and change listview input with if condition 【发布时间】:2020-08-24 00:30:11 【问题描述】:我正在从 sqlite 获取数据并显示在列表视图中。 sqlite 中的所有数据都存储为String
。例如,
ImageName UploadStatus
test1.jpg 1
test2.jpg 2
我使用游标获取数据如下:
cursor = sqLiteDatabase.rawQuery("SELECT * from activityRes", null);
ImageName_Array.clear();
UploadStatus_Array.clear();
if (cursor != null && cursor.getCount() > 0)
if (cursor.moveToFirst())
do
ImageName_Array.add(cursor.getString(cursor.getColumnIndex("ImageName")));
UploadStatus_Array.add(cursor.getString(cursor.getColumnIndex("UploadStatus")));
// if (cursor.getString(cursor.getColumnIndex("UploadStatus")) == "1")
// UploadStatus_Array.add("Y");
// else if (cursor.getString(cursor.getColumnIndex("UploadStatus")) == "2")
// UploadStatus_Array.add("N");
//
while (cursor.moveToNext());
UploadStatus_Array.add 获取数据并将其显示为 1 和 2。但是,我想将显示更改为 Y
和 N
。我尝试使用注释代码......但它把整个桌子都扔了。
【问题讨论】:
你为什么不直接删除 UploadStatus_Array.add(cursor.getString(cursor.getColumnIndex("UploadStatus"))); ? 我已将其删除...运行其他部分代码时 我不明白有什么问题?删除它时,您只需根据值分别添加 Y 或 N 是 1 还是 2 我可以将其呈现为 1 和 2。但是,如果我注释掉 UploadStatus.Array 行并取消注释后续 5 行,以将 1 转换为 Y 并将 2 转换为 N,则它不起作用 嗯...请记录 cursor.getString(cursor.getColumnIndex("UploadStatus")) 的值,看看它是什么 【参考方案1】:最好执行一个查询,返回您想要的结果,然后将它们添加到列表中。
您所要做的就是在SELECT
语句中使用CASE
表达式,您将在UploadStatus
列中填充Y
s 和N
s:
String sql = "SELECT ImageName, CASE UploadStatus WHEN '1' THEN 'Y' WHEN '2' THEN 'N' END AS UploadStatus FROM activityRes"
cursor = sqLiteDatabase.rawQuery(sql, null);
ImageName_Array.clear();
UploadStatus_Array.clear();
while (cursor.moveToNext())
ImageName_Array.add(cursor.getString(cursor.getColumnIndex("ImageName")));
UploadStatus_Array.add(cursor.getString(cursor.getColumnIndex("UploadStatus")));
无需检查cursor
是否为null
。 rawQuery()
的结果永远不会是 null
。
也无需检查cursor.getCount()
是否大于0
,因为while (cursor.moveToNext())
就足够了。
【讨论】:
谢谢...您的解决方案有效...也让我对 sql 查询有了不同的看法以上是关于Android - 从 sqlite 获取字符串数据并使用 if 条件更改列表视图输入的主要内容,如果未能解决你的问题,请参考以下文章
Android - 从 sqlite 获取字符串数据并使用 if 条件更改列表视图输入