我的db是null的问题是什么?有说Cursor cursor = myDb.getData(select * from Donation_Details); myDb : null
,它弹出下面的错误。
这是运行时错误说的
这是我分配和声明数据库时的qazxsw poi。
DatabaseHelper
当我想从数据库中获取数据时,这是 private static final String DATABASE_NAME = "eBossCharity.db";
private static final int DATABASE_VERSION = 1;
public dbOpenHelper(Context context){
super(context,DATABASE_NAME,null,DATABASE_VERSION);
}
。
dbAccess
当我想将数据显示到自定义列表视图时,这是public dbOpenHelper openHelper;
public SQLiteDatabase db;
private static dbAccess instance;
public dbAccess(Context context) {
this.openHelper = new dbOpenHelper(context);
}
public static dbAccess getInstance(Context context) {
if (instance == null) {
instance = new dbAccess(context);
}
return instance;
}
public Cursor getData(String sql) {
db = openHelper.getReadableDatabase();
return db.rawQuery("", null);
}
。我在第13行设置了一个断点并进行调试。它说我的数据库为空。我叫Summary page
方法dbAccess
并抓住数据库“Donation_details”。它应该显示数据......
getData
我想我在这里和那里都错过了什么。但我找不到它,或者我输入错误的东西导致数据库为空?我可以提供一些指导吗?预先感谢...
解:
写这个
ListView listView;
ArrayList<Model> mList;
RecordListAdapter mAdapter = null;
dbAccess myDb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_summary__page);
this.listView = findViewById(R.id.listView);
mList = new ArrayList<>();
mAdapter = new RecordListAdapter(this,R.layout.row,mList);
listView.setAdapter(mAdapter);
Cursor cursor = myDb.getData("Select * from Donation_Details");
mList.clear();
while(cursor.moveToNext()){
int id = cursor.getInt(0);
String txnno = cursor.getString(1);
String name = cursor.getString(2);
String txndate = cursor.getString(3);
BigDecimal amount = BigDecimal.valueOf(cursor.getDouble(4));
String description1 = cursor.getString(5);
String createddate = cursor.getString(7);
mList.add(new Model(id,txnno,name,txndate,amount,description1,createddate));
}
在你的onCreate()之后的行myDb = new dbAccess(this);
试试吧..
你需要初始化'dbAccess myDb'