我有一个 DataBaseHelper ,它有一个fetchData()
方法,它返回一个Cursor
,其中包含整个表行和一个.sqlite文件在assest文件夹中。
我写了这个:
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类型
这里有什么问题?我是否使用错误的适配器从数据库中获取?
答案 0 :(得分:2)
然后我们看看标题,我们可以阅读: public abstract 类CursorAdapter 抽象类无法在Java中实现(以及实现该概念的任何其他语言),它的功能不是错误。 我们可以找到更多的行,我们可以找到SimpleCursorAdapter的链接,这不是抽象的。 如此简单的解决方案是“只使用SimpleCustomAdapter而不是抽象的CursorAdapter。
自Android 1.0(API lvl1)以来,SimpleCursorAdapter存在于Android API中。