Android - 从 sqlite 中获取字符串数据并使用 if 条件更改列表视图输入
Android - Fetching string data from sqlite and change listview input with if condition
我正在从 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
。我尝试使用注释代码......但它正在抛出整个 table。
最好执行一个查询 return 您想要的结果,然后将它们添加到列表中。
您所要做的就是在 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())
就足够了。
我正在从 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
。我尝试使用注释代码......但它正在抛出整个 table。
最好执行一个查询 return 您想要的结果,然后将它们添加到列表中。
您所要做的就是在 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())
就足够了。