Android-从sqlite获取字符串数据并使用if条件更改listview输入
我正在从sqlite获取数据并显示在列表视图中。sqlite中的所有数据都存储为Android-从sqlite获取字符串数据并使用if条件更改listview输入,android,sqlite,listview,cursor,android-sqlite,Android,Sqlite,Listview,Cursor,Android Sqlite,我正在从sqlite获取数据并显示在列表视图中。sqlite中的所有数据都存储为String。比如说, ImageName UploadStatus test1.jpg 1 test2.jpg 2 我使用游标获取数据,如下所示: cursor = sqLiteDatabase.rawQuery("SELECT * from activityRes", null); ImageName_Array.clear(); UploadStat
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
。我尝试使用注释代码…但它会抛出整个表。最好执行一个查询,返回您想要的结果,并将其添加到列表中。您只需在
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")));
}
无需检查光标
是否为空
。rawQuery()
的结果从不为null
另外,不需要检查
cursor.getCount()
是否大于0
,因为while(cursor.moveToNext())
就足够了。为什么不删除UploadStatus_数组。添加(cursor.getString(cursor.getColumnIndex(“UploadStatus”)?我已经删除了它…当运行代码的其他部分时,我不明白是什么问题?当您删除它时,您只需根据值分别添加Y或N,这取决于它是1还是2。我可以将其渲染为1和2。然而,如果我注释掉UploadStatus.Array行并取消注释随后的5行,将1转换为Y,2转换为N,那么它就不能正常工作。。。请记录cursor.getString(cursor.getColumnIndex(“UploadStatus”))的值,看看它是什么谢谢你…你的解决方案奏效了…也让我对sql查询有了不同的想法