0

我有一个DataBaseHelper,它有一个fetchData()方法返回一个Cursor包含整个表行的 drom 文件夹中的 .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

这里有什么问题?我是否使用错误的适配器从数据库中获取?

4

1 回答 1

2

嗯....让我们看看:首先我们打开CursorAdapter的参考页面。

然后我们查看标题,我们可以阅读: public abstract class CursorAdapter 抽象类不能在 Java 中(以及任何其他实现该概念的语言)实例化,它是功能而不是错误。再多几行,我们就可以找到非抽象的SimpleCursorAdapter的链接。所以简单的解决方案是“只使用 SimpleCustomAdapter 而不是抽象的 CursorAdapter。

SimpleCursorAdapter 自 Android 1.0 (API lvl1) 起就存在于 Android API 中。

于 2011-07-06T09:51:02.823 回答