0

// 这不起作用。它显示第一个记录并在此之后停止。我想要一个即使在最后一条记录之后也能继续运行的循环。我明白你的观点,光标从位置 0 开始。
//代码

cur=db.getData(position);

    switch(v.getId())
    {

    case R.id.next :
    { 

        if (cur != null && cur.getCount()> 0 && position < cur.getCount() && position != cur.getCount()){
            cur.moveToPosition(position);
            textView1.setText(""+cur.getString(1));// Display Columns 
            position++;
            cur.moveToNext();
        }
}

// 我想要一个循环来显示记录号

对于下一个按钮,例如:

1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 

后退按钮 例如:

5 4 3 2 1 5 4 3 2 1

随机按钮,例如:

3 4 5 1
5 1 2 3
4 5 1 2 
4

3 回答 3

5

出现该异常,因为您试图将对象置于不存在的位置。记住索引从 0 开始。

直接来自 DOCS:

 public abstract boolean moveToPosition (int position)

在 API 级别 1 中添加

将光标移动到绝对位置。值的有效范围是 -1 <= position <= count。

如果请求目的地可达,此方法将返回 true,否则返回 false。参数定位要移动到的从零开始的位置。退货

whether the requested move fully succeeded. 
于 2013-07-29T23:24:17.257 回答
0

在增加位置之前调用获取数据,因为你试图在一个不存在的我是你的数据库中加入一个元素。

cur =db. getData(position) ;

然后

position++;

记得首先声明 position = 0

于 2013-07-30T01:39:17.650 回答
0
if (cur != null && cur.getCount()> 0 && position < cur.getCount() && position != cur.getCount()){
                        cur.moveToPosition(position);
                        textView1.setText(""+cur.getString(1));// Display Columns 
                    }
于 2013-07-29T23:18:52.393 回答