今天大致完成了Android stdio版本的地铁信息查询功能,一些基本的功能可以实现,但是又一个功能还没有实现,一直出现bug就是输入起始点、终点,输不出来。
猜测问题出现在这里:
while(cursor.moveToNext()) {
if(line.getStartstopname().equals(cursor.getString(cursor.getColumnIndex("StopName"))))
{
line.setOriginline(cursor.getInt(cursor.getColumnIndex("Line")));
}
if(line.getEndstopname().equals(cursor.getString(cursor.getColumnIndex("StopName")))) {
line.setFinishline(cursor.getInt(cursor.getColumnIndex("Line")));
}
}
Originline和FinishLine没有获取数据。目前还没又找到解决方法,下面就了解一下cursor的用法吧:
Cursor 是每行的集合。使用 moveToFirst() 定位第一行。你必须知道每一列的名称。你必须知道每一列的数据类型。Cursor 是一个随机的数据源。所有的数据都是通过下标取得。
关于 Cursor 的重要方法:
1 c.move(int offset); //以当前位置为参考,移动到指定行 2 c.moveToFirst(); //移动到第一行 3 c.moveToLast(); //移动到最后一行 4 c.moveToPosition(int position); //移动到指定行 5 c.moveToPrevious(); //移动到前一行 6 c.moveToNext(); //移动到下一行 7 c.isFirst(); //是否指向第一条 8 c.isLast(); //是否指向最后一条 9 c.isBeforeFirst(); //是否指向第一条之前 10 c.isAfterLast(); //是否指向最后一条之后 11 c.isNull(int columnIndex); //指定列是否为空(列基数为0) 12 c.isClosed(); //游标是否已关闭 13 c.getCount(); //总数据项数 14 c.getPosition(); //返回当前游标所指向的行数 15 c.getColumnIndex(String columnName);//返回某列名对应的列索引值,如果不存在返回-1 16 c.getString(int columnIndex); //返回当前行指定列的值
17 c·getColumnIndexOrThrow(String columnName)——从零开始返回指定列名称,如果不存在将抛出IllegalArgumentException 异常。
18 c.close()——关闭游标,释放资源
