Вы, кажется, ожидаете, что c.getCount()
будет -1, если запрос вернет 0 строк.Почему бы не вернуть 0?(Я не помню случая, чтобы он возвращал -1, но, возможно, моя память неисправна.)
В любом случае проверка на c.getCount() <= 0
может показаться более безопасной.
Кроме того, этот запрос
Cursor c = db.rawQuery( "SELECT category FROM sharelist WHERE category='"+category.getText().toString()+";'",null);
искажен - посмотрите на конец, где у вас есть ";'"
.Вы хотите иметь "'"
там.(Строки запроса, которые передаются в rawQuery
, не должны заканчиваться точкой с запятой; в противном случае "';"
будет правильным выбором.)
Как уже говорили вам в других потоках, вы на самом деле этого не делаете.хотите делать запросы конкатенацией;использование аргумента selectionArgs является гораздо более безопасным способом передачи значений запроса.