ID #58864

ListView 实现更多按钮

XML/HTML代码
  1. view plaincopy to clipboardprint?  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     
  3. android:orientation="horizontal"     
  4.     
  5. android:layout_width="fill_parent"     
  6.     
  7. android:gravity="center_horizontal"     
  8.     
  9. android:padding="3dp"     
  10.     
  11. android:layout_height="fill_parent">     
  12.     
  13.     
  14. <TextView     
  15.     
  16. android:id="@id/android:empty"     
  17.     
  18. android:layout_width="wrap_content"     
  19.     
  20. android:layout_height="fill_parent"     
  21.     
  22. android:gravity="center"     
  23.     
  24. android:padding="5dp"     
  25.     
  26. android:text="Loading more ..."/>     
  27.     
  28.     
  29.     
  30. </LinearLayout>    

 
Java代码
  1. MoreListTestActivity  
  2. view plaincopy to clipboardprint?  
  3. public class MoreListTest extends ListActivity {    
  4.     
  5. private ListView mListView;    
  6.     
  7. private ArrayList<String> mItems;    
  8.     
  9. private ArrayAdapter<String> mAdapter;    
  10.     
  11. private boolean loadingMore = false;    
  12.     
  13. private int itemsCount = 15//新添加的数据个数    
  14.     
  15.     
  16.     
  17. @Override    
  18.     
  19. protected void onCreate(Bundle savedInstanceState) {    
  20.     
  21. super.onCreate(savedInstanceState);    
  22.     
  23. /* 添加初始显示的数据 */    
  24.     
  25. addData();    
  26.     
  27. mListView = getListView();//获得listview对象    
  28.     
  29.     
  30.     
  31. /* 将footview的布局转换成View对象*/    
  32.     
  33. View foot = ((LayoutInflater) this    
  34.     
  35. .getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(    
  36.     
  37. R.layout.foot, nullfalse);    
  38.     
  39.     
  40.     
  41. /* 给footview添加点击事件监听器*/    
  42.     
  43. foot.setOnClickListener(new View.OnClickListener() {    
  44.     
  45.     
  46.     
  47. @Override    
  48.     
  49. public void onClick(View v) {    
  50.     
  51. loadingMore = true;    
  52.     
  53. for (int i = 0; i < itemsCount; i++) {    
  54.     
  55. mItems.add("new "+i); //添加数据    
  56.     
  57. }    
  58.     
  59. mAdapter.notifyDataSetChanged(); //通知适配器重新适配    
  60.     
  61. }    
  62.     
  63. });    
  64.     
  65.     
  66.     
  67. /* 给listview添加footview*/    
  68.     
  69. mListView.addFooterView(foot);    
  70.     
  71. mAdapter = new ArrayAdapter<String>(this,    
  72.     
  73. android.R.layout.simple_list_item_1, mItems);    
  74.     
  75. /* listview添加适配器*/    
  76.     
  77. mListView.setAdapter(mAdapter);    
  78.     
  79. }    
  80.     
  81.     
  82.     
  83. private void addData() {    
  84.     
  85. mItems = new ArrayList<String>();    
  86.     
  87. for (int i = 0; i < 5; i++) {    
  88.     
  89. mItems.add(i+"");    
  90.     
  91. }    
  92.     
  93. }    
  94.     
  95.