光标和获取数据的问题?

问题描述:

我创建了一个表,并尝试使用光标如下来从它的数据:光标和获取数据的问题?

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,根据我的说法,每次我不知道什么是错误时,每次都会提取数据,因此每次有人会告诉我这里有什么问题?

+0

你调试代码,它总是在上面,你检查光标的大小if语句。 – Prateek 2013-02-23 05:54:29

+0

确保getContent未返回空值。而不是检查r.getCount()调用r.moveToFirst(),然后使用r.isAfterLast == true。 – 2013-02-23 06:22:37

检查您得到的光标是否为空。如果是,那么光标计数是什么。你可以通过下面的方式做到这一点。

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"); 
} 

尝试这样