Android第三方框架之xListView的使用方法

==最近向用xListView实现刷新效果,在网上没有找到相关的例子和方法说明。自己看了会儿demo在此留下笔记以供日后复习==
第一步:到官网下载第三方包,拷贝到自己的项目中。要注意的地方是在layout,String和drawable下也有这个控件的配置信息,这个一定要考进去。
第二步:布局文件(背景一定要设置成透明色)
  
 <me.maxwin.view.XListView
        android: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. */
	@Override
	public 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);//用模拟的数据填充系统的adapter
		mListView.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("刚刚");
	}
	
	@Override
	public void onRefresh() {
		mHandler.postDelayed(new Runnable() {
			@Override
			public 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);
	}

	@Override
	public void onLoadMore() {
		mHandler.postDelayed(new Runnable() {
			@Override
			public void run() {
				geneItems();
				mAdapter.notifyDataSetChanged();
				onLoad();
			}
		}, 2000);
	}

}

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



ps:各位大神请轻喷,另外希望爱好编程的小伙伴能加这个群,互相帮助,共同学习。群号: 141877583

你可能感兴趣的:(android,xListView,上拉加载下拉刷新)