次のコードで作成された SQL テーブルがあります。
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TABLE_NAME + " (" + _ID
+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + SUBJECT
+ " TEXT NOT NULL," + TOPIC + " TEXT NOT NULL, "
+ LECTURENUMBER + " TEXT NOT NULL, " + PAGENUMBER
+ " TEXT NOT NULL, " + DATE + " TEXT NOT NULL, " + _DATA
+ " TEXT NOT NULL);");
}
次のようにテーブルをクエリします。
String sql = "SELECT " + _ID + "," + SUBJECT + " FROM " + TABLE_NAME
+ " GROUP BY " + SUBJECT + ";";
Cursor cursor = subjects.getReadableDatabase().rawQuery(sql, null);
問題は、カーソルが空の場合 (テーブルに値が格納されていない場合) はアクティビティ A を開始し、カーソルが空でない場合 (テーブルがいっぱいである場合) はアクティビティ B を開始する必要があることです。
テーブルが空かどうかを教えてくれるメソッドが見つかりません。次のようにログを使用しようとしました:
private void showSubjectsOnList() {
String sql = "SELECT " + _ID + "," + SUBJECT + " FROM " + TABLE_NAME
+ " GROUP BY " + SUBJECT + ";";
Cursor cursor = subjects.getReadableDatabase().rawQuery(sql, null);
Log.d("Events",Integer.toString(cursor.getCount()));
if(cursor.isNull(0)!=false){
cursor.close();
subjects.close();
startActivity(new Intent(this,OpenScreen.class));
}
}
しかし、ログは、テーブルが空の場合は 1 を示し、テーブルにエントリが 1 つある場合は 1 を示し、テーブルにエントリが 2 つある場合は 2 を示します。
カーソルが空かどうかに基づいてさまざまなアクティビティを開始するという私の問題を解決する方法を提案できますか。