Xlistview使用方法

来源:互联网 发布:修改淘宝代码 编辑:程序博客网 时间:2024/03/29 01:07
==最近向用xListView实现刷新效果,在网上没有找到相关的例子和方法说明。自己看了会儿demo在此留下笔记以供日后复习==
第一步:到官网下载第三方包,拷贝到自己的项目中。要注意的地方是在layout,String和drawable下也有这个控件的配置信息,这个一定要考进去。
第二步:布局文件(背景一定要设置成透明色)
  
Java代码  收藏代码
  1. <me.maxwin.view.XListView  
  2.        android:id="@+id/xListView"  
  3.        android:layout_width="fill_parent"  
  4.        android:layout_height="fill_parent" android:cacheColorHint="#00000000">  
  5.    </me.maxwin.view.XListView>  

第三步:开始编写java代码
Java代码  收藏代码
  1. package me.maxwin;  
  2.   
  3. import java.util.ArrayList;  
  4.   
  5. import me.maxwin.view.XListView;  
  6. import me.maxwin.view.XListView.IXListViewListener;  
  7. import android.app.Activity;  
  8. import android.os.Bundle;  
  9. import android.os.Handler;  
  10. import android.widget.ArrayAdapter;  
  11.   
  12. public class XListViewActivity extends Activity implements IXListViewListener {  
  13.     private XListView mListView;        //创建XListView对象  
  14.     private ArrayAdapter<String> mAdapter;        //创建适配器  
  15.     private ArrayList<String> items = new ArrayList<String>();      //这个是本例中模拟的数据  
  16.     private Handler mHandler;       //用来模拟网络请求的(不要被迷惑)  
  17.     private int start = 0;  
  18.     private static int refreshCnt = 0;  
  19.     /** Called when the activity is first created. */  
  20.     @Override  
  21.     public void onCreate(Bundle savedInstanceState) {  
  22.         super.onCreate(savedInstanceState);  
  23.         setContentView(R.layout.main);  
  24.         geneItems();  
  25.         mListView = (XListView) findViewById(R.id.xListView);// ~~~~~指定布局中的xListView控件~~~~~  
  26.         mListView.setPullLoadEnable(true);//上拉刷新  
  27.         mAdapter = new ArrayAdapter<String>(this, R.layout.list_item, items);//用模拟的数据填充系统的adapter  
  28.         mListView.setAdapter(mAdapter);//指定adapter  
  29. //      mListView.setPullLoadEnable(false);  
  30. //      mListView.setPullRefreshEnable(false);//下拉刷新  
  31.           
  32.         mListView.setXListViewListener(this);//给xListView设置监听  ******  
  33.           
  34.         //给xListView条目设置监听事件  
  35.         mHandler = new Handler();  
  36.     }  
  37.   
  38.     private void geneItems() {  
  39.         for (int i = 0; i != 5; ++i) {  
  40.             items.add("refresh cnt " + (++start));  
  41.         }  
  42.     }  
  43.       
  44.       
  45.     //或的数据后一定要加onLoad()方法,否则刷新会一直进行,根本停不下来  
  46.     private void onLoad() {  
  47.         mListView.stopRefresh();  
  48.         mListView.stopLoadMore();  
  49.         mListView.setRefreshTime("刚刚");  
  50.     }  
  51.       
  52.     @Override  
  53.     public void onRefresh() {  
  54.         mHandler.postDelayed(new Runnable() {  
  55.             @Override  
  56.             public void run() {  
  57.                 start = ++refreshCnt;  
  58.                 items.clear();  
  59.                 geneItems();  
  60.                 // mAdapter.notifyDataSetChanged();  
  61.                 mAdapter = new ArrayAdapter<String>(XListViewActivity.this, R.layout.list_item, items);  
  62.                 mListView.setAdapter(mAdapter);  
  63.                 onLoad();  
  64.             }  
  65.         }, 2000);  
  66.     }  
  67.   
  68.     @Override  
  69.     public void onLoadMore() {  
  70.         mHandler.postDelayed(new Runnable() {  
  71.             @Override  
  72.             public void run() {  
  73.                 geneItems();  
  74.                 mAdapter.notifyDataSetChanged();  
  75.                 onLoad();  
  76.             }  
  77.         }, 2000);  
  78.     }  
  79.   
  80. }  

需要注意的地方:
1.给XListViewListener 设置监听事件mListView.setXListViewListener(this);
2.获取数据后调用onLoad()方法
3.如果想给xListView中的条目设置监听事件和原来的ListView一样(重写了ListView的OnItemClickListen方法)
原创粉丝点击