帮我看一下这个代码有什么问题,这个代码的思路是通过Dao类封装sqlite的代码db=myHelper.getReadableDatabase(); cursor=db.rawQuery("select * from user where username=?",new String[]{user.getUsername()}); int n=cursor.getCount(); return n;,然后在MainActivity里面引用dao类,点击按钮后就可以查询出数据,为什么点了按钮后不会更新listview上的数据?MainActivity代码如下MyAdapter myAdapter = new MyAdapter(data, this, dao); SQLiteDatabase db = myhelper.getReadableDatabase(); Cursor cursor = db.rawQuery("select * from user", null); data.removeAll(data);//每次运行前先清除之前的数据 dao.select_All(data); //新建Dao类里面把SQLite封装的方法实现 while (cursor.moveToNext()) { user.setId(cursor.getInt(0)); user.setUsername(cursor.getString(1)); user.setPassword(cursor.getString(2)); data.add(user); } lv.setAdapter(myAdapter); db.close(); myhelper.close(); cursor.close(); Daol类的代码如下
时间: 2023-05-22 13:01:09 浏览: 185
看起来你的代码是在MainActivity类里面执行数据库查询,然后将查询到的数据更新到ListView上。
在点击按钮后,你首先清空了数据列表(data),然后调用了Dao类中的select_All方法,再将查询到的数据添加到数据列表(data)中。最后,你使用了新的数据列表(data)更新了ListView。
我看不出这段代码中有什么问题,如果ListView上的数据没有更新,可能是因为select_All方法没有正常工作,或者数据库查询语句有误导致没有查询到数据。你可以尝试调用select_All方法单独运行一下,看看它是否正常工作,并检查一下数据库查询语句是否正确。
阅读全文