从SQLite表中获取数据时,我收到空指针异常。 我在使用游标获取数据时获得空指针异常,如下面的Cursor c = db.fetchAllData(); 请看下面的精确代码,并向我提出一些想法...
display_transaction.class
public class display_transaction extends Activity {
DisplayTestDBHelper db;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.display_listview);
displayListView();
}
public void displayListView() {
Cursor c= db.fetchAllData();
String[] columns={db.KEY_ID,db.KEY_DESCRIPTION,db.KEY_AMOUNT};
int[] id=new int[]{R.id.textView1,R.id.textView2};
SimpleCursorAdapter s=new SimpleCursorAdapter(this,R.layout.listviewlayout,c,columns,id,0);
ListView l=(ListView) findViewById(R.id.listview1);
l.setAdapter(s);
}
}
DisplayTestDBHelper.class
public Cursor fetchAllData() {
String TABLE_NAME="transaction_table";
SQLiteDatabase db = this.getWritableDatabase();
Cursor mCursor = db.query(TABLE_NAME, new String[] {KEY_ID, KEY_DESCRIPTION, KEY_AMOUNT}, null, null, null, null, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
请帮我解决上述问题...... 在此先感谢!!!!
答案 0 :(得分:5)
您没有初始化db
。
根据您实现帮助程序构造函数的方式,使用类似
的内容db = new DisplayTestDBHelper(this);
初始化,传递this
的活动Context
。
答案 1 :(得分:2)
您尚未初始化db
。
您需要执行以下操作:
db = new DisplayTestDBHelper(this);