今天去面试,面试官问到这样的一个问题:要用ListView显示一些数据,这些数据是从网络上下载的,数据量很大的,需要一段时间,现在需要一边下载数据一边显示在ListView上面,请问如何实现?
    这个问题我当时没有一点思路,不知道如何绑定数据到ListView并显示,现在问下各位朋友,有什么比较好的方法?

解决方案 »

  1.   

    ListView.setAdapter 用设配器把数据显示到ListView上,因为是从网上读数据就得用异步下载数据。
      

  2.   

    异步下载? AysncTask 么
      

  3.   

    这样子呢,下载的数据查询是分页查询,加载就一页一页数据的加载到listview里有点类似微博的显示。拖到页面底部再加载新的数据...
      

  4.   

    启动一个线程去下载,然后实时更新listview的adapter
      

  5.   

    1.使用ListView.setAdapter进行绑定数据,后台启动一个线程从网络获取数据,每获取到一段数据,然后发送一个handler对被绑定的Adapter进行setchanghed更新,这样就可以实现动态绑定数据。
    2.还有一种方法是从网络获取数据时,首先获取数据量的大小,在进行ListView绑定数据时,可以设置一些临时数据,当数据更新的时候 再替换原先的数据。
      我个人介意使用第一种方法比较好,因为在数据量特别大的时候,一次性绑定太多的元素,会使系统运行缓慢
      

  6.   

    可以用AsyncTask前台更新界面,后台获取数据,并刷新adapter吧
      

  7.   

    使用Adapter绑定数据源显示,并且启动另一个线程下载数据,每次收到的数据量大于10条时调用setchangenotify通过adapter修改数据
      

  8.   

    这个很重要,一定做好异步下载,分页模式,和缓存模式这三个很重要
    就是做adapter的时候要特别注意