SimpleCursorAdapter和ListView问题

时间:2011-04-08 20:46:33

标签: android listview simplecursoradapter

我在listview中显示来自db的记录时遇到问题。这是我的代码

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);

 }
...

如果您需要更多,请点击此处https://github.com/grzegorz-l/myHomeworks

当我启动我的应用程序时,它会在beggining(RuntimeException)崩溃。如果我在onCreate方法中注释2最后一行它运行但是ofc没有显示任何内容。

提前致谢

格雷格

2 个答案:

答案 0 :(得分:2)

创建SimpleCursorAdapter时不要传递getApplicationContext()。请改用this,即ListActivity的上下文。

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

答案 1 :(得分:0)

您的FirstTab.java文件正在扩展ListActivity。这意味着它的布局文件必须包含一个将android:id设置为:

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

此外,您的FirstTab.java的布局指向note_entry.xml。它应该指向一个具有上述描述的ListView的布局,或者不由ListActivity扩展。