Android SimpleCursorAdapter + ListView не работает - PullRequest
1 голос
/ 05 мая 2011

Привет. Я пытаюсь использовать SimpleCursorAdapter для привязки значений к адаптеру списка.Курсор приходит из базы данных SQLLite.Однако независимо от результатов в курсоре (он всегда имеет по крайней мере одну строку), в представлении списка отображается пустое сообщение. Я довольно новичок в Android и благодарен за любую помощь по этому вопросу.

Мой код указан ниже:

In Activity: Вызывается onCreate ()

private void setupList() {
    if(sesionDao == null) {
        sesionDao = new SessionDAO(this);
    }
    Cursor cursor = sesionDao.retrieveAllSessions();
    startManagingCursor(cursor);

    String[] from = new String[]{Database.SES_SESSION_NAME};
    int[] to = new int[]{R.id.sessionNameRow};
    SimpleCursorAdapter sessionAdapter = new SimpleCursorAdapter(this, R.layout.session_list_row,cursor, from, to );

    setListAdapter(sessionAdapter);
}

Получение курсора

db = dbHelper.getReadableDatabase();

Cursor c = db.query(Database.SESSIONS_TABLE_NAME, new String[] {
    Database.ID_COLUMN, Database.SES_SESSION_NAME }, null,
                null, null, null,null);

session_list_row.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:text="" android:id="@+id/sessionNameRow" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> </LinearLayout>

Основной макет <ListView android:id="@android:id/list" android:layout_height="fill_parent" android:layout_width="fill_parent"></ListView> <TextView android:id="@android:id/empty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/no_sessions_msg" />

1 Ответ

2 голосов
/ 05 мая 2011

Я разобрался с проблемой.Я делал глупую ошибку, закрывая соединение, когда метод заканчивается, когда курсор становится недействительным после этого.

...