Проблема SimpleCursorAdapter и ListView

1

У меня проблема с отображением записей из моего db в listview. Это мой код

public class FirstTab extends ListActivity {    


private DatabaseHelper dbhelper;


@Override
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);

    setContentView(R.layout.first);

    dbhelper = new DatabaseHelper(getApplicationContext());
    Cursor cursor = dbhelper.getAllNotes();
    startManagingCursor(cursor);


    String[] columns = new String[] {DatabaseHelper.colTitle , DatabaseHelper.colDate};

    int[] to = new int[] { android.R.id.text1, android.R.id.text2};

    SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cursor, columns, to);

    setListAdapter(mAdapter);
}
}

и

...
public Cursor getAllNotes()
 {
     SQLiteDatabase db=this.getReadableDatabase();

     return db.query(noteTable, new String [] {colTitle, colDesc, colDate}, null, null, null, null, null);

 }
...

если вам нужно больше, здесь находится repo https://github.com/grzegorz-l/myHomeworks

Когда я запускаю свое приложение, он падает в начале (RuntimeException). Если я прокомментирую две последние строки в методе onCreate, они запускаются, но fromc ничего не показывает.

Заранее спасибо

Грег

  • 0
    опубликовать детали сообщения об исключении / stacktrace.
Теги:
listview
simplecursoradapter

2 ответа

2
Лучший ответ

Не пропустите getApplicationContext() при создании SimpleCursorAdapter. Вместо этого используйте this, т.е. Контекст вашей ListActivity.

SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cursor, columns, to);
  • 1
    я скопировал плохой код; p в репо правильно "это", но это не помогает, если есть это вместо getApplicationContext
0

Ваш файл FirstTab.java расширяет ListActivity. Это означает, что файл макета должен содержать ListView с андроидом: id, установленным на:

android:id="@android:id/list"

Кроме того, у вашего FirstTab.java есть макет, указывающий на note_entry.xml. Он должен либо указывать на макет, который имеет ListView выше описания в нем или не будет расширен ListActivity.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню