У меня есть таблица 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);
Проблема заключается в том, что мне нужно запустить Activity A, если курсор пуст (то есть таблица не сохраняет значения) и Activity B, если курсор не пуст (т.е. таблица заполнена).
Я не могу найти метод, который может сказать мне, является ли таблица пустой или нет. Я попытался использовать Log следующим образом:
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));
}
}
Но LOG показывает 1, если таблица пуста... и снова 1, если таблица имеет 1 запись.... она показывает 2, если таблица имеет две записи и т.д.
Можете ли вы предложить какой-то метод решения моей проблемы при запуске разных действий на основе того, является ли курсор пустым или нет.