问题描述
- 当数据库为空的时候,用lisView动态加载数据空时出现的闪退问题
-
当我用ListView动态加载数据库中的文件时,当数据库中确实存在文件时,一切正常,能够正常显示。
但是当数据库为空或者吗,没有新建数据库的时候,用ListView加载时,就会出现闪退的问题。
求大神支招,怎么解决。附上我的获取数据库中数据的方法```private ArrayList getData(){
SQLiteDatabase db =openOrCreateDatabase("text.db", MODE_PRIVATE, null);
Cursor c =db.rawQuery("select * from texttb", null);
if(c!=null){
while(c.moveToNext()){
mArrayList.add(c.getString(c.getColumnIndex("conent")));
}
c.close();
}
else{
mArrayList.add("暂时还没有添加任何的便签消息");
}
db.close();
return mArrayList;
}
解决方案
肯定是你访问量null对象,看看错误日志,肯定会告诉你在哪个单元,第几行
解决方案二:
你最好好错误日志贴出来,不过根据你说的情况很有可能是空指针异常,由于导致出现这种问题的情况很多,
我也不太确定,你看看你的getData()方法调用有没有问题
解决方案三:
if(c!=null){
while(c.moveToNext()){
mArrayList.add(c.getString(c.getColumnIndex("conent")));
}
c.close();
}
把c.close()去掉,加个数据源为空的异常提示就行了
解决方案四:
Cursor c =db.rawQuery("select * from texttb", null); 数据库为空时 c=null,你调用c.close()方法肯定会报错:改为
if(c != null) {
c.close()
}