三月二十七日

发布时间 2023-03-27 21:49:08作者: 布吉岛???

今天大致完成了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()——关闭游标,释放资源