mol*_*man 4 java database sqlite android cursor
我从我的数据库中检索信息,它全部在Cursor中.现在我需要浏览光标中的每个项目以检索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));
Run Code Online (Sandbox Code Playgroud)
我有一个名为fecthAllSpots()this的antoher方法返回游标中的许多项目,我如何从该游标中的每一行检索每个lng lat和name?
您可以使用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));
}
Run Code Online (Sandbox Code Playgroud)
当然,您必须对lat,lng和name变量执行某些操作,因为它们将在每次迭代时被覆盖.我建议你实现一个DBLocation类,它可以存储一个位置的名称,经度和纬度.然后,您可以将从光标创建的所有对象存储在数组或列表中.
第一.您可以在游标上使用getInt,getLong等方法来检索值,而不是之后解析它们.
问题:
这是sintax:
首先查询db以获取游标.
接下来对光标进行空检查(以防万一因为它有时会发生),也可以使用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())
}
Run Code Online (Sandbox Code Playgroud)
最后关闭光标或者如果它是托管查询,则不执行任何活动将为您关闭它.在一个块中重新记住所有这些,并且除了你要检查的其他内容之外,考虑游标的nullPointerException.
| 归档时间: |
|
| 查看次数: |
13283 次 |
| 最近记录: |