这个问题我纠结很久,通过上网搜索答案,再经过自己的再三调试,终于搞定了。这里跟大家分享?
简单一点说就是:我在A类中打开一个数据库的连接!代码如下:
db=dbHelper.getReadableDatabase();
c=dbHelper.findById(db, rowId);
startManagingCursor(c);
while (c.moveToNext()){
title.setText(c.getString(c.getColumnIndex("title")));
title.setText(c.getString(c.getColumnIndex("body")));
}
然后调用B类中的查询方法就是上面的findById(db,rowId)方法,返回一个Cursor对象。下面是重点
这是B类中的查询方法,代码如下:
public Cursor findById(SQLiteDatabase db,long rowId){
Cursor c=null;
try{
String sql="select _id,title,body from note where _id="+rowId;
c=db.rawQuery(sql, null);
return c;
}
catch (Exception e){
e.printStackTrace();
}finally{
if(db!=null){
db.close();
}
}
return null;
}
上面红色标注的地方,就是报异常的地方,意思是不能提前关闭数据库连接,只要去掉红色地方的代码就行了!!