0

assestフォルダー内の.sqliteファイルからテーブル行全体を含むを返すメソッドを持つDataBaseHelperがあります。fetchData()Cursor

私はこれを書いた:

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

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

tryブロックの最後にこれらの2行を追加しました。CursorAdapter caListView にアタッチするためにこれを行いましたlv

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

ただし、CursorAdapterのインスタンス化行に次のエラーメッセージが表示されました。

タイプCursorAdapterをインスタンス化できません

ここで何が問題になっていますか?データベースからフェッチするために間違ったアダプタを使用していますか?

4

1 に答える 1

2

うーん....見てみましょう:まず、CursorAdapterのリファレンスページを開きます。

次に、ヘッダーを見て、次のように読むことができます。パブリック抽象クラスCursorAdapter抽象クラスはJava(およびその概念を実装する他の言語)ではインスタンス化できません。これはバグではなく機能です。抽象的ではないSimpleCursorAdapterへのリンクを見つけることができる行はさらに数行あります。したがって、単純な解決策は、「抽象CursorAdapterの代わりにSimpleCustomAdapterを使用するだけです。

SimpleCursorAdapterは、Android 1.0(API lvl1)以降のAndroidAPIに存在します。

于 2011-07-06T09:51:02.823 に答える