==最近向用xListView实现刷新效果,在网上没有找到相关的例子和方法说明。自己看了会儿demo在此留下笔记以供日后复习==
第一步:到官网下载第三方包,拷贝到自己的项目中。要注意的地方是在layout,String和drawable下也有这个控件的配置信息,这个一定要考进去。
第二步:布局文件(背景一定要设置成透明色)
第三步:开始编写java代码
需要注意的地方:
1.给XListViewListener 设置监听事件mListView.setXListViewListener(this);
2.获取数据后调用onLoad()方法
3.如果想给xListView中的条目设置监听事件和原来的ListView一样(重写了ListView的OnItemClickListen方法)
第一步:到官网下载第三方包,拷贝到自己的项目中。要注意的地方是在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方法)