获取游标对象时出现空指针异常

时间:2014-08-10 10:32:54

标签: android sqlite

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


}

请帮我解决上述问题...... 在此先感谢!!!!

2 个答案:

答案 0 :(得分:5)

您没有初始化db

根据您实现帮助程序构造函数的方式,使用类似

的内容
db = new DisplayTestDBHelper(this);

初始化,传递this的活动Context

答案 1 :(得分:2)

您尚未初始化db

您需要执行以下操作: db = new DisplayTestDBHelper(this);