Xlistview上拉刷新,下拉加载

来源:互联网 发布:虚拟社交网络语言规则 编辑:程序博客网 时间:2024/06/05 21:59

第一步:到官网下载第三方包,拷贝到自己的项目中。要注意的地方是在layout,String和drawable下也有这个控件的配置信息,这个一定要考进去。 第二步:布局文件(背景一定要设置成透明色)   

<me.maxwin.view.XListViewandroid:id="@+id/xListView"android:layout_width="fill_parent" android:layout_height="fill_parent"android:cacheColorHint="#00000000"></me.maxwin.view.XListView>
第三步:开始编写java代码
package me.maxwin;import java.util.ArrayList;import me.maxwin.view.XListView;import me.maxwin.view.XListView.IXListViewListener;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.widget.ArrayAdapter;public class XListViewActivity extends Activity implements IXListViewListener {private XListView mListView;//创建XListView对象private ArrayAdapter<String> mAdapter;//创建适配器private ArrayList<String> items = new ArrayList<String>();//这个是本例中模拟的数据private Handler mHandler;//用来模拟网络请求的(不要被迷惑)private int start = 0;private static int refreshCnt = 0;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);geneItems();mListView = (XListView) findViewById(R.id.xListView);// ~~~~~指定布局中的xListView控件~~~~~mListView.setPullLoadEnable(true);//上拉刷新mAdapter = new ArrayAdapter<String>(this, R.layout.list_item, items);//用模拟的数据填充系统的adaptermListView.setAdapter(mAdapter);//指定adapter//mListView.setPullLoadEnable(false);//mListView.setPullRefreshEnable(false);//下拉刷新mListView.setXListViewListener(this);//给xListView设置监听 ******//给xListView条目设置监听事件mHandler = new Handler();}private void geneItems() {for (int i = 0; i != 5; ++i) {items.add("refresh cnt"+ (++start));}}//或的数据后一定要加onLoad()方法,否则刷新会一直进行,根本停不下来private void onLoad() {mListView.stopRefresh();mListView.stopLoadMore();mListView.setRefreshTime("刚刚");}@Overridepublic void onRefresh() {mHandler.postDelayed(new Runnable() {@Overridepublic void run() {start = ++refreshCnt;items.clear();geneItems();// mAdapter.notifyDataSetChanged();mAdapter = new ArrayAdapter<String>(XListViewActivity.this, R.layout.list_item, items);mListView.setAdapter(mAdapter);onLoad();}}, 2000);}@Overridepublic void onLoadMore() {mHandler.postDelayed(new Runnable() {@Overridepublic void run() {geneItems();mAdapter.notifyDataSetChanged();onLoad();}}, 2000);}}
需要注意的地方: 1.给XListViewListener 设置监听事件mListView.setXListViewListener(this); 2.获取数据后调用onLoad()方法 3.如果想给xListView中的条目设置监听事件和原来的ListView一样(重写了ListView的OnItemClickListen方法)