我在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没有显示任何内容。
提前致谢
格雷格
答案 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设置为:
的ListViewandroid:id="@android:id/list"
此外,您的FirstTab.java的布局指向note_entry.xml。它应该指向一个具有上述描述的ListView的布局,或者不由ListActivity扩展。