Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 获取光标对象时出现空指针异常_Android_Sqlite - Fatal编程技术网

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

Android 获取光标对象时出现空指针异常,android,sqlite,Android,Sqlite,我在从SQLite表中获取数据时遇到空指针异常。 在使用游标c=db.fetchAllData()下面的游标获取数据时,我得到了空指针异常; 请看一下下面的精确代码,并给我一些建议 display\u事务类 public class display_transaction extends Activity { DisplayTestDBHelper db; protected void onCreate(Bundle savedInstanceState) {

我在从SQLite表中获取数据时遇到空指针异常。 在使用游标c=db.fetchAllData()下面的游标获取数据时,我得到了空指针异常; 请看一下下面的精确代码,并给我一些建议

display\u事务类

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


}
DisplayTestDBHelper.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);
    }
}
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;


}
请帮我解决以上问题。。。
提前感谢

您没有初始化
db

根据您实现助手构造函数的方式,可以使用

db = new DisplayTestDBHelper(this);

要初始化它,请为
上下文传递活动
this

您没有初始化
db

根据您实现助手构造函数的方式,可以使用

db = new DisplayTestDBHelper(this);

要初始化它,请将活动
this
传递给
上下文

您尚未初始化
db

您需要执行以下操作:
db=newdisplaytestdbhelper(这个)

您尚未初始化
db

您需要执行以下操作:
db=newdisplaytestdbhelper(这个)

从现在开始,如果您得到NullPointerException,首先去搜索是否初始化了对象。从现在开始,如果你得到NullPointerException,首先去搜索你是否初始化了一个对象。那会节省你很多时间。非常感谢你。非常感谢你