Проблема Android SimpleCursorAdapter

Я написал этот метод в классе My DataBaseHelper:

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

И написал этот код внутри одного из моих действий:

    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


person iTurki    schedule 06.07.2011    source источник
comment
Какую ошибку вы получаете?   -  person Andro Selva    schedule 06.07.2011
comment
Ошибки нет! приложение принудительно закрывает. Я считаю, что ошибка в строке lv.setAdapter(), но я НЕ знаю, почему!   -  person iTurki    schedule 06.07.2011
comment
В случае, если это может помочь: я объявил представление следующим образом: ListView lv = (ListView) findViewById(android.R.id.list);   -  person iTurki    schedule 06.07.2011
comment
какая ошибка отображается в вашем логарифме?   -  person Andro Selva    schedule 06.07.2011
comment
вы расширяете ListActivity? если да, просто получите ListView с помощью getListView()   -  person    schedule 06.07.2011
comment
У меня много строк в logCat. Их так много, что я не могу их прочитать и понять. Ваш совет по получению представления хорош. Спасибо.   -  person iTurki    schedule 06.07.2011
comment
Я обновил вопрос снимком экрана. посмотри плз.   -  person iTurki    schedule 06.07.2011
comment
LogCat должен сообщить вам точную строку вашего кода, которая генерирует ошибку. Кроме того, замените this.getBaseContext() на этот   -  person    schedule 06.07.2011


Ответы (1)


Android аварийно завершает работу при попытке увеличить количество элементов в представлении списка. Второй параметр конструктора — это layout.

layout - ресурсный идентификатор файла макета, который определяет представления для этого элемента списка. Файл макета должен включать по крайней мере те именованные представления, которые определены в «to».

Вы передаете android.R.id.list, что для меня звучит так, как будто вы передаете идентификатор списка вместо идентификатора элемента.

person Mojo Risin    schedule 06.07.2011
comment
Вы ПОЛНОСТЬЮ правы. Я забыл о расположении предметов. Хотя у меня есть проблема с SCA, проблема с принудительным закрытием теперь решена. Спасибо :) - person iTurki; 07.07.2011