android 实现listview动态加载列表项

来源:互联网 发布:vb readprocessmemory 编辑:程序博客网 时间:2024/04/29 11:13

http://blog.csdn.net/yaoyeyzq/article/details/6399351

最近了一个动态加载listview类表项的列子,分享出来大家学习学习,我说说这个例子的实现过程,首先我限定每次加载的列表项数据为10条数据,当我拖动listview滚动到最后一条数据的时候再加载10条,并在Listview下方显示加载提示。

下面是我的java源码:

 

[java] view plaincopy
  1. private void showContent() {  
  2.         listView = (ListView) findViewById(R.id.journals_list_one);  
  3.         loadData();  
  4.         adapter = new MyListAdapter(this, data);  
  5.   
  6.         footerView = View.inflate(TestLayout.this,  
  7.                 R.layout.journal_listitem_loading_bar, null);  
  8.         listView.addFooterView(footerView, nulltrue);  
  9.   
  10.         listView.setAdapter(adapter);  
  11.         listView.setOnScrollListener(listener);  
  12.     }  
  13. private AbsListView.OnScrollListener listener = new AbsListView.OnScrollListener() {  
  14.   
  15.         @Override  
  16.         public void onScrollStateChanged(AbsListView view, int scrollState) {  
  17.             if (view.getLastVisiblePosition() == view.getCount() - 1) {  
  18.                 loadData();  
  19.                 adapter.notifyDataSetChanged();  
  20.             }  
  21.         }  
  22.   
  23.         @Override  
  24.         public void onScroll(AbsListView view, int firstVisibleItem,  
  25.                 int visibleItemCount, int totalItemCount) {  
  26.   
  27.         }  
  28.     };  
  29.   
  30.     /** 
  31.      * 构造List列表数据 
  32.      */  
  33.     private void loadData() {  
  34.         if (data.size() <= 40) {  
  35.             for (int i = 0; i < 10; i++) {  
  36.                 Map<String, String> map = new HashMap<String, String>();  
  37.                 map.put("title", getString(R.string.title));  
  38.                 map.put("desc", getString(R.string.content));  
  39.                 data.add(map);  
  40.             }  
  41.         } else {  
  42.             listView.removeFooterView(footerView);  
  43.         }  
  44.     }  

实现这个功能主要是添加ListView的OnScrollListener监听,判断是否列表项到了最有一条,如果是最后一条就加载数据。加载数据时的加载效果是ListView.addFooterView()方法实现这个方法必须在listview.setAdapter()前才有用,当所有数据加载完成就调用listView.removeFooterView把footerview移除就可以了.


原创粉丝点击