如何解决如何从Android中的游标中检索数据?
| 我从数据库中检索信息,这些信息全都在游标中。现在,我需要遍历光标中的每个项目以检索lng lats和要显示在地图上的名称。Cursor c = mDbHelper.fetchSpot(15);
startManagingCursor(c);
double lat = Double.parseDouble(c.getString(c.getColumnIndexOrThrow(ParkingSpotDBAdapter.KEY_LAT)));
double lng = Double.parseDouble(c.getString(c.getColumnIndexOrThrow(ParkingSpotDBAdapter.KEY_LNG)));
String name = c.getString(c.getColumnIndexOrThrow(ParkingSpotDBAdapter.KEY_ADDRESS));
我有一个称为fecthAllSpots()
的方法,该方法会在游标中返回许多项目,我该如何从该游标的每一行中检索每个lng lat和名称?
解决方法
您可以使用while循环来迭代游标返回的所有行。
while(c.moveToNext()){
double lat = Double.parseDouble(c.getString(c.getColumnIndexOrThrow(ParkingSpotDBAdapter.KEY_LAT)));
double lng = Double.parseDouble(c.getString(c.getColumnIndexOrThrow(ParkingSpotDBAdapter.KEY_LNG)));
String name = c.getString(c.getColumnIndexOrThrow(ParkingSpotDBAdapter.KEY_ADDRESS));
}
当然,您必须对lat,lng和name变量进行操作,因为它们将在每次迭代中被覆盖。我建议您实现一个DBLocation类,该类可以存储位置的名称,经度和纬度。然后,您可以将通过光标创建的所有对象存储在数组或列表中。
, 第一。您可以只在游标上使用getInt,getLong等方法来检索值,而不是随后对其进行解析。
问题:
这是sintax:
首先查询数据库以获取游标。
接下来对光标进行空检查(以防万一,因为有时会发生这种情况),也可以使用try catch块进行。
接下来写:
if(c.moveToFirst()){
do{
// YOUR CODE FOR EACH CURSOR ITEM HERE.
// the cursor moves one field at a time trhough it\'s whole dataset
}while(c.moveToNext())
}
最后关闭游标,或者如果它是托管查询,则不执行任何操作,该活动将为您关闭它。在一个块中记住所有这些内容,除其他所有内容外,您将检查游标的nullPointerException。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。