我在sqlite数据库中存放了一个星期的课程数据,通过sql语句返回Cursor后,封装到List<HashMap<String,Object>>对象中,在页面中的ListView显示,现在能实现查询当天数据.如何实现点击下一天或上一天,来动态切换ListView的数据?
public void onClick(View v) {
if (v.getId() == R.id.image_pre) {
c.add(Calendar.DATE, -1);
}
if (v.getId() == R.id.image_next) {
c.add(Calendar.DATE, 1);
} }
我把adapter.notifyDataSetChanged();写在按钮事件处理中也不行.
然后想着是不是界面要重新载入一下,但是界面重新载入后在按钮事件中的日期修改也就不起作用了.

解决方案 »

  1.   

    参考
    c.moveToNext
    c.moveToPrevious
      

  2.   

    首先,谢谢回复.我可能把问题没描述完整.我在数据库访问层(好像可以这么说吧)写了增删改查等方法,其中"查"这个方法的返回值不是游标而是List<HashMap<String,Object>>对象,所以在Activity中调用查询方法时,已经关闭数据库对象了,查过来的数据应该算是个数据包了.上一天或下一天的数据可以查出来,现在的问题是在界面点击事件后怎么刷新ListView中的数据.刚看了一个方法好像是在事件中再获得ListView....
      

  3.   


    首先,谢谢回复.我可能把问题没描述完整.我在数据库访问层(好像可以这么说吧)写了增删改查等方法,其中"查"这个方法的返回值不是游标而是List<HashMap<String,Object>>对象,所以在Activity中调用查询方法时,已经关闭数据库对象了,查过来的数据应该算是个数据包了.上一天或下一天的数据可以查出来,现在的问题是在界面点击事件后怎么刷新ListView中的数据.刚看了一个方法好像是在事件中再获得ListView....
      

  4.   

    如果我没看错的话,楼主写的适配器中的数据(一天的课程)应该是List<HashMap<String,Object>>中的一个HashMap<String,Object>,
    有个思路,楼主试试:
    在适配器里追加一个变量作为list的游标,通过该游标确认当前的listview显示哪数据list中的哪个HashMap。在activity的button的监听事件内,更变上边的游标值至你想显示的那天,
    然后调用activity的listview的notifyDataSetInvalidated()方法,即可刷新listView显示
    写得又点乱。楼主请担待!