1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  2  android:layout_width="match_parent"  3  android:layout_height="match_parent"  4  android:background="#f5f5f5" >  5  6 <zrc.widget.ZrcListView  7 android:id="@+id/zListView"  8  android:layout_width="match_parent"  9  android:layout_height="match_parent" > 10 </zrc.widget.ZrcListView> 11 12 <RelativeLayout 13 android:layout_width="match_parent" 14  android:layout_height="50dp" 15  android:layout_alignParentTop="true" 16  android:background="#ccffffff" > 17 18 <TextView 19 android:layout_width="wrap_content" 20  android:layout_height="wrap_content" 21  android:layout_centerInParent="true" 22  android:text="常见国家" 23  android:textSize="20sp" /> 24 25 <View 26 android:layout_width="match_parent" 27  android:layout_height="1px" 28  android:layout_alignParentBottom="true" 29  android:layout_centerHorizontal="true" 30  android:background="#cccccc" /> 31 32 </RelativeLayout> 33 34 </RelativeLayout>
  1   import java.util.ArrayList;  3 import android.app.Activity;  4 import android.os.Bundle;  5 import android.os.Handler;  6 import android.view.View;  7 import android.view.ViewGroup;  8 import android.widget.BaseAdapter;  9 import android.widget.TextView;  11 import zrc.widget.SimpleFooter;  12 import zrc.widget.SimpleHeader;  13 import zrc.widget.ZrcListView;  14 import zrc.widget.ZrcListView.OnStartListener;  15  16 public class MainActivity extends Activity {  17 private ZrcListView listView;  18 private Handler handler;  19 private ArrayList<String> msgs;  20 private int pageId = -1;  21 private MyAdapter adapter;  22  23 private static final String[][] names = new String[][]{  24 {"加拿大","瑞典","澳大利亚","瑞士","新西兰","挪威","丹麦","芬兰","奥地利","荷兰","德国","日本","比利时","意大利","英国"},  25 {"德国","西班牙","爱尔兰","法国","葡萄牙","新加坡","希腊","巴西","美国","阿根廷","波兰","印度","秘鲁","阿联酋","泰国"},  26 {"智利","波多黎各","南非","韩国","墨西哥","土耳其","埃及","委内瑞拉","玻利维亚","乌克兰"},  27 {"以色列","海地","中国","沙特阿拉伯","俄罗斯","哥伦比亚","尼日利亚","巴基斯坦","伊朗","伊拉克"}  28  };  29  30  @Override  31 protected void onCreate(Bundle savedInstanceState) {  32 super.onCreate(savedInstanceState);  33  setContentView(R.layout.activity_main);  34  35 listView = (ZrcListView) findViewById(R.id.zListView);  36 handler = new Handler();  37  38 // 设置默认偏移量,主要用于实现透明标题栏功能。(可选)  39 float density = getResources().getDisplayMetrics().density;  40 listView.setFirstTopOffset((int) (50 * density));  41  42 // 设置下拉刷新的样式(可选,但如果没有Header则无法下拉刷新)  43 SimpleHeader header = new SimpleHeader(this);  44 header.setTextColor(0xff0066aa);  45 header.setCircleColor(0xff33bbee);  46  listView.setHeadable(header);  47  48 // 设置加载更多的样式(可选)  49 SimpleFooter footer = new SimpleFooter(this);  50 footer.setCircleColor(0xff33bbee);  51  listView.setFootable(footer);  52  53 // 设置列表项出现动画(可选)  54  listView.setItemAnimForTopIn(R.anim.topitem_in);  55  listView.setItemAnimForBottomIn(R.anim.bottomitem_in);  56  57 // 下拉刷新事件回调(可选)  58 listView.setOnRefreshStartListener(new OnStartListener() {  59  @Override  60 public void onStart() {  61  refresh();  62  }  63  });  64  65 // 加载更多事件回调(可选)  66 listView.setOnLoadMoreStartListener(new OnStartListener() {  67  @Override  68 public void onStart() {  69  loadMore();  70  }  71  });  72  73 adapter = new MyAdapter();  74  listView.setAdapter(adapter);  75 listView.refresh(); // 主动下拉刷新  76  }  77  78 private void refresh(){  79 handler.postDelayed(new Runnable() {  80  @Override  81 public void run() {  82 // 随机数模拟成功失败。这里从有数据开始。  83 int rand = (int) (Math.random() * 2);  84 if(rand == 0 || pageId == -1){  85 pageId = 0;  86 msgs = new ArrayList<String>();  87 for(String name:names[0]){  88  msgs.add(name);  89  }  90  adapter.notifyDataSetChanged();  91 listView.setRefreshSuccess("加载成功"); // 通知加载成功  92 listView.startLoadMore(); // 开启LoadingMore功能  93 }else{  94 listView.setRefreshFail("加载失败");  95  }  96  }  97 }, 2 * 1000);  98  }  99 100 private void loadMore(){ 101 handler.postDelayed(new Runnable() { 102  @Override 103 public void run() { 104 pageId++; 105 if(pageId<names.length){ 106 for(String name:names[pageId]){ 107  msgs.add(name); 108  } 109  adapter.notifyDataSetChanged(); 110  listView.setLoadMoreSuccess(); 111 }else{ 112  listView.stopLoadMore(); 113  } 114  } 115 }, 2 * 1000); 116  } 117 118 private class MyAdapter extends BaseAdapter{ 119  @Override 120 public int getCount() { 121 return msgs==null ? 0 : msgs.size(); 122  } 123  @Override 124 public Object getItem(int position) { 125 return msgs.get(position); 126  } 127 128  @Override 129 public long getItemId(int position) { 130 return position; 131  } 132 133  @Override 134 public View getView(int position, View convertView, ViewGroup parent) { 135  TextView textView; 136 if(convertView==null) { 137 textView = (TextView) getLayoutInflater().inflate(android.R.layout.simple_list_item_1, null); 138 }else{ 139 textView = (TextView) convertView; 140  } 141  textView.setText(msgs.get(position)); 142 return textView; 143  } 144  } 145 }

开源ListView自定义下载:http://download.csdn.net/detail/androidsj/7948481

更多相关文章

  1. Android(安卓)如何加载大图片
  2. Android(安卓)图片加载库Glide
  3. android下拉菜单spinner的使用方法
  4. SystemUI9.0系统应用图标加载流程
  5. Android(安卓)顶部下拉刷新添加数据&& 底部上拉刷新添加数据 Scr
  6. Android(安卓)原生加载框
  7. Android(安卓)Drawable Resources系列5:
  8. 利用BLCR加快android的启动过程
  9. Spinner

随机推荐

  1. Android应用程序的快速启动是怎样炼成的?
  2. Android如何保持程序一直运行
  3. Android(五)数据存储之五网络数据交互
  4. android如何开发流量监控软件
  5. Android之Adapter用法
  6. Android vector矢量图应用实例
  7. android事件处理机制
  8. Android NDK r4 windows 环境中的安装
  9. Android 系统架构了解学习
  10. android recovery mode