Mam dostawcy treści, który uzyskuje dostęp do mojej bazy danych, która jest w porządku, jeśli trzeba radzić sobie z zestawów płytowych ale muszę metodę zwraca liczbę całkowitą oznaczającą liczbę rekordów w tabeliAndroid niestandardowa metoda w dostawcy treści, aby uzyskać liczbę rekordów w tabeli?
Metoda wygląda to
public long getRecordCount(String TableName) {
SQLiteDatabase mDatabase = mOpenHelper.getReadableDatabase();
String sql = "SELECT COUNT(*) FROM " + TableName;
SQLiteStatement statement = mDatabase.compileStatement(sql);
long count = statement.simpleQueryForLong();
return count;
}
Ale nie jestem w stanie znaleźć żadnego sposobu użycia tego (lub jakiejkolwiek innej metody, która nie zwraca kursora w tym przypadku) w dostawcy treści, więc gdzie jest najlepsze miejsce do umieszczenia tej metody i jak ją nazwać ?
Oczywiście mógłbym zrobić naprawdę złe możliwość wyboru wszystkie rekordy z zarządzanego zapytania i używając cursor.count wynik, ale to jest jeden niezwykle nieefektywny sposób radzenia sobie z tym konkretnym wymogiem
Thanks
Dziękuję, to otwiera szereg innych pytań na co najlepiej odpowiedzieć, jeśli istnieje przykład wdrożenia proponowanego rozwiązania. W szczególności, jak uzyskać wartość ze zwróconego pakietu i jak umieścić wartość w wyniku klasy pakunku. Gdybyś mógł wskazać mi kierunek użycia tej metody, byłbym bardzo wdzięczny za to, – jamesc
Mam problem ze znalezieniem sposobu użycia tej metody. Zobacz moją zmodyfikowaną odpowiedź, aby uzyskać inne sugestie. –
lol! Nie na własną rękę wtedy :) - Myślę, że mogę użyć zarządzanego zapytania, ustawić nowe URI i mieć wynik z wybranej liczby * Zwróć kursor - Wydaje się, że jest to rozwiązanie uproszczone. Dzięki za pomoc – jamesc