当数据库有更改时,listview可以感知并刷新但是我只改了一条数据的一个字段,就不好用了但删除这条数据是好用,请问详细用法

解决方案 »

  1.   

    修改数据库数据时,调用notifyDataSetChanged方法无效;
    删除数据库数据时,调用notifyDataSetChanged方法有效。
    --------------------------
    你是通过按下控件修改和删除数据库中的数据吗?如果是的话:
    大概的思路是这样的:当你按下控件时,会执行一条SQL语句,数据库中的数据就会发生改变,如果想将数据库中的数据变动映射到Activity中,可以调用notifyDataSetChanged方法。举例来说明:// 下面是对ImageView进行监听,该功能是对指定的菜名进行减少一份的操作,
    // 在自定义适配器的getView方法中实现的
    holder.imgSub.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) 
    {
    // 1.获得ListView的菜名
    // 2.更新数据库中的RM表,将times列的次数进行修改
    // 3.在数据库中的RM表里获得数据,存储在ArrayList<Object>对象中
    // 4.更新ListView.
    String dn = bean.getDn();
    HandleData.updateRMTimes(context, dn, "sub");
    itemList = HandleData.updateData(context);
    refreshListView(); // 这个方法里面就是一条notifyDataSetChanged()语句,只是我把它作为一个方法封装起来了。
    }
    });
      

  2.   

    一楼,我是在A activity中相应onItemClickLisner的onclick方法,进入detail界面,界面有按钮确定,点击后会1.改变对应条目在数据库中的值(算是修改)2.调用了A activity的refersh()
    public void refersh() {
    listItemAdapter.notifyDataSetChanged();
    System.out.println("refresh after update ok");
    }
    方法,想实现刷新listview的功能,解释详细点