android - 游标和获取数据有问题吗?

标签 android android-sqlite

我创建了一个表并尝试使用游标从中获取数据,如下所示:

public Cursor getcontent() {
    Cursor d = database.query(DatabaseHandler.Table_Name2,allColumns,selection, null, null,null,null); 
    return d;
}
Cursor r = X.getcontent();
if (r.getCount() > 0) {
    r.moveToFirst();
    do {
        String id = r.getString(r.getColumnIndex("content_id"));
        al.add(id);
        MainActivity.tt1.append("\n");  
        MainActivity.tt1.append(id);   
    } while (r.moveToNext()==true);
        r.close();
    } else {
        Log.i("TAG"," No value found");
    }      
}

我在 TextView 中显示结果以查看获取的数据。我的问题是,当我运行此代码时,有时它会在 TextView 中显示数据,无论它已获取什么,有时却没有。它是 50:50 的比率,根据我的说法,它应该每次都显示获取的值,因为每次获取数据时我都不知道这里出了什么问题,有人可以告诉我这里有什么问题吗?

最佳答案

检查您获取的 Cursor 是否为 Null 。如果是,那么游标计数是多少。你可以通过下面的方式做到这一点。

Cursor r = X.getcontent();
if ((r != null) && (r.getCount() > 0)) {
    r.moveToFirst();
    do {
        String id = r.getString(r.getColumnIndex("content_id"));
        al.add(id);
        MainActivity.tt1.append("\n");  
        MainActivity.tt1.append(id);   
    } while (r.moveToNext());
    r.close();
} else {
    Log.i("TAG"," No value found inside Cursor");
}  

关于android - 游标和获取数据有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15037527/

相关文章:

sql - 如何创建SQL索引以加快连接速度?

android - 是否可以使用adb协议(protocol)从android手机发送短信

android - 无法在 android 中找到 com.android.camera.CropImage Activity

android - 在 Android ICS x86 上构建 fastdroid-vnc 时出现问题

android - 如何在 Room 数据库中使用创建和打开回调

java - 是否保存替换SQLite数据库

android - 在android中绘制垂直线

android - 获取所选项目值抛出 IndexOutOfBoundsException

android - SQLite 跨表跨列排序

java - 从 SQLITE 数据库表中提取整数时出现数字格式异常