3

テーブルにレコードがあるかどうかを確認したいのですが。これが私が試したことです:

if( cursor != null ){
        cursor.moveToFirst();
        if (cursor.getInt(0) == 0) {
        Toast.makeText(getBaseContext(), "No records yet!", Toast.LENGTH_SHORT).show();
        }
    }

Logcatは言う:

  CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0

どんな助けでも大歓迎です。ありがとう。

4

4 に答える 4

1

これを試して

cursor.getCount();

カーソルがデータ数を取得すると返されます。これが0の場合、データはありません

それで

if(cursor != null && cursor.getCount()>0){
   cursor.moveToFirst();
   //do your action
   //Fetch your data

}
else {
 Toast.makeText(getBaseContext(), "No records yet!", Toast.LENGTH_SHORT).show();
    return;
}  

注:if( cursor != null )クエリを実行した後、カーソルがnull値を返さないことを確認しても、その後カーソルのデータ数を確認するためにこれを行います

于 2013-01-28T16:51:22.223 に答える
0

Cursor.getCount()空の結果セットの場合は0を返します。

于 2013-01-28T16:48:11.177 に答える
0

私はあなたが方法を探していると思いますgetCount()

cursor.getCount()==0空の結果を確認するだけです。

于 2013-01-28T16:49:20.663 に答える
0
if(cursor.moveToFirst()){
//do your work
}
else{
 Toast.makeText(getBaseContext(), "No records yet!", Toast.LENGTH_SHORT).show();
}
于 2013-01-28T16:49:53.777 に答える