动态加载ListView

时间:2010-09-28 19:50:45

标签: android

我想动态加载ListView,例如,在滚动期间加载它们,所以它不会加载我拥有的所有100个帖子。我怎样才能做到这一点?

我在SO处查看了类似的解决方案,但由于我没有让它工作,我问了这个问题。

我的代码:

//orders is my is my ArrayList<WithMyOwnOrderClass> that handling orders
/* adapter is my inner private class in this piece of code, that trigging
the getView */
if(orders != null && orders.size() > 0){

 for(int i=0;i<orders.size();i++){          
     adapter.add(orders.get(i));
 }
            adapter.notifyDataSetChanged();
            progressDialog.dismiss();
 }

我有相同的.java文件,可以从网上下载信息并循环显示100个项目,如下所示:

JSONObject jObject = new JSONObject(queryResult);
SONArray docsArray = jObject.getJSONArray("array");
   for (int i = 0; i < 100; i++) {
      try {      
            title = docsArray.getJSONObject(i).optString("title");   
          } catch (JSONException e) {}      
    }

然后正确添加新订单等等。 但是现在!(?)我想在加载第一个项目时这样做,它应该出现,滚动时它会逐渐加载。

希望能够实现这一点,并提前感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

我将假设您从单个Web服务调用中获取项目的JSON。

如果是这样,请在AsyncTask中进行查询和JSON解析。对每个项目执行doInBackground()调用publishProgress()。在onProgressUpdate()add())上实施ArrayAdapter来电ArrayList<>,以便将该项目附加到ListViewHere is a sample project展示了这项技术。