ListView获取导数据但刷新不显示的问题

项目中的真实体验!

       今天真是尴尬丢人的一天啊!!!!

      项目中用到访问网络,从网络中获取数据,回传给handler,再在handler中给adapter传值,这里的adapter,我先在oncreate方法中初始化了,只是赋值的items是null对象的list集合,在handler中获取成功的回调的数据,我直接通过msg.obj赋值给list集合,然后就adapter.notifyDataSetChanged(),但是!在handler中获取到数据了,刷新没有!找半天没找到原因,没办法,我就再handler成功的回调中初始化adapter,运行有数据了,测试也没测出问题,当时项目比较紧,也没深探究,就这样,项目上线了,今天收集的bug中有个框架出问题了,其他成员找半天原因,最后找到我这里,啊啊啊啊!!!尴尬丢人死了!在这里记录下!

     ListView不刷新解决办法:在handler成功的回调中,将msg.obj赋值给另一个list集合,然后将集合通过addAll的方式添加到初始化adapter时的list集合中,最后再刷新!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现ListView自动刷新显示ACCESS数据表中的数据,可以按照以下步骤进行操作: 1. 首先,确保你已经连接到了ACCESS数据库,并且已经创建了一个ListView控件用于显示数据。 2. 在代码中,使用ADO组件(如ADOTable、ADOQuery等)连接到ACCESS数据库,并将查询结果绑定到ListView控件上。 3. 在需要刷新数据的时候,可以通过重新查询数据库来获取最新的数据,并更新ListView显示。 下面是一个示例代码,演示如何实现ListView自动刷新显示ACCESS数据表中的数据: ```delphi var adoQuery: TADOQuery; listItem: TListItem; begin // 创建ADOQuery组件 adoQuery := TADOQuery.Create(nil); try // 设置ADOQuery的Connection属性与ACCESS数据库连接 adoQuery.Connection := YourADOConnection; // YourADOConnection为你的ADO连接组件 // 设置SQL语句,用于查询数据表中的数据 adoQuery.SQL.Text := 'SELECT * FROM YourTable'; // YourTable为你的数据表名 // 打开查询 adoQuery.Open; // 清空ListView中的所有项 ListView1.Items.Clear; // 遍历查询结果,将数据显示ListView中 while not adoQuery.Eof do begin // 创建一个新的ListView项 listItem := ListView1.Items.Add; // 将查询结果中的字段值分别赋给ListView项的各列 listItem.Caption := adoQuery.FieldByName('Field1').AsString; // Field1为字段名 listItem.SubItems.Add(adoQuery.FieldByName('Field2').AsString); // Field2为字段名 // 移动到下一条记录 adoQuery.Next; end; // 关闭查询 adoQuery.Close; finally // 释放ADOQuery组件 adoQuery.Free; end; end; ``` 你可以根据自己的实际情况,修改上述代码中的数据库连接和查询语句,以及ListView的列设置,以适应你的需求。记得在需要刷新数据的时候调用上述代码即可实现ListView的自动刷新显示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值