CursorAdapter не может быть создан! - PullRequest
0 голосов
/ 06 июля 2011

У меня есть DataBaseHelper , у которого есть метод fetchData(), который возвращает Cursor, содержащий строки всей таблицы из файла .sqlite в папке сборки.

Я написал это:

    try {
        Cursor cursor = myDbHelper.fetchData("tableName");
        txt.setText("Done!"); //for check only

    } catch (Exception e){
        txt.setText("Can't fetch data !");
    }

Я добавил эти две строки в конце блока try . Я сделал это для того, чтобы прикрепить CursorAdapter ca к ListView lv:

        CursorAdapter ca = new CursorAdapter(getBaseContext(), cursor, false);
        lv.setAdapter(ca);

Тем не менее, я получил сообщение об ошибке в CursorAdapter строка создания:

Невозможно создать экземпляр типа CursorAdapter

Что здесь не так? я использую неправильный адаптер для извлечения из базы данных?

1 Ответ

2 голосов
/ 06 июля 2011

Хм .... давайте посмотрим: сначала мы открываем справочную страницу для CursorAdapter .

Затем мы смотрим на заголовок и можем прочитать: public abstract Класс CursorAdapter Абстрактные классы не могут быть созданы в Java (и в любом другом языке, реализующем эту концепцию), это особенность, а не ошибка.Еще несколько строк, мы можем найти ссылку на SimpleCursorAdapter , которая не является абстрактной.Таким простым решением является «просто используйте SimpleCustomAdapter вместо абстрактного CursorAdapter.

SimpleCursorAdapter существует в Android API начиная с Android 1.0 (API lvl1).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...