我有一个数据库,我想使用游标收集字符串[]中一列的所有对象...所以这是我的代码:
c.moveToFirst();
int i = 0;
String[] addresses = new String[c.getCount()];
while(c.moveToNext()) {
addresses[i] = c.getString(c.getColumnIndex("address"));
i++;
}
c.close();
Run Code Online (Sandbox Code Playgroud)
但是当我使用这段代码时:
StringBuilder builder = new StringBuilder();
for(String in : addresses) {
builder.append("" + in + " ");
}
Toast.makeText(getApplicationContext(), builder, Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)
用于显示我的字符串[]中的所有对象,我得到了:
234567null..但是正确的答案应该是这样的:1234567..!
所以我的错误在哪里?... 谢谢!!
tl; dr删除对的调用moveToFirst(),它将起作用。
一个新的Cursor从位置开始-1,通过调用moveToFirst它将移动到位置0。
如果调用while(moveToNext) 后使用moveToFirst第一个索引,则在循环中将被1跳过0。
最好使用以下方法完成游标循环
cursor.moveToPosition(-1); // in case you accessed it before
while(cursor.moveToNext()) {
// ...
}
cursor.close();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
281 次 |
| 最近记录: |