0

MyDataBaseHelperクラスでこのメソッドを作成しました。

public Cursor fetchData(String tableName) {
    return myDataBase.rawQuery("SELECT rowid as _id, title FROM "+tableName, null);
}

そして、私の活動の1つにこのコードを書きました:

    try {
        Cursor cursor = myDbHelper.fetchData("tableName");
        String[] columns = {cursor.getColumnName(0), cursor.getColumnName(1)}; 
        int[] columnsLayouts = {R.id.layout1, R.id.layout2}; 
        SimpleCursorAdapter ca = new SimpleCursorAdapter
                            (this.getBaseContext(),
                            android.R.id.list, cursor,columns , columnsLayouts);
        lv.setAdapter(ca); //lv is my ListView with id="@android:id/list"
        txt.setText("Done ! : "); //Process is Ok

    } catch (Exception e){
        txt.setText("Error"); //Error happens
    }

コードは正常にコンパイルされています。ただし、この線に達すると強制的に閉じましたlv.setAdapter(ca);

問題はありますか?私はそれを間違った方法でしましたか?

-

更新:これはlogCatエラーです(フィルターをかけた後android.view:)

LogCat画面

4

1 に答える 1

1

リストビューのアイテムを膨らませようとすると、Androidがクラッシュします。コンストラクターの2番目のパラメーターはlayoutです-

layout-このリストアイテムのビューを定義するレイアウトファイルのリソース識別子。レイアウトファイルには、少なくとも「to」で定義された名前付きビューが含まれている必要があります

android.R.id.listを渡していますが、これはアイテムのIDではなくリストIDを渡しているように聞こえます。

于 2011-07-06T14:38:19.260 に答える