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 から始まることに注意してください。

ドキュメントから直接:

 public abstract boolean moveToPosition (int position)

API レベル 1 で追加

カーソルを絶対位置に移動します。有効な値の範囲は -1 <= 位置 <= カウントです。

このメソッドは、リクエストの宛先に到達できる場合は true を返し、それ以外の場合は false を返します。パラメータ position は、移動先のゼロベースの位置です。戻り値

whether the requested move fully succeeded. 
于 2013-07-29T23:24:17.257 に答える
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 に答える
0

位置をインクリメントする前に get data を呼び出します。これは、存在しない I'm your db の要素にアクセスしようとしているためです。

cur =db. getData(position) ;

それで

position++;

まず最初に position = 0 を宣言することを忘れないでください

于 2013-07-30T01:39:17.650 に答える