大家一定都注意过 淘宝呀 天猫一些购物网站 的 商品 下拉 刷新信息 上拉 加载商品详情
看效果
这里昵 我们 用XListView包 复制些配置代码 来实现这些功能
首先 准备工作 要有XListView包 我们创建个项目 如Demos 然后 把me.maxwei.view包下的java文件的R路径换成你的包路径就可以了
XML中main 的ListView后就ok
接下来就看主MainActivity的代码了
注意的是 实现implements IXListViewListener 中的两方法 看代码
package com.example.demos;
import java.util.ArrayList;
import java.util.List;
import me.maxwin.view.XListView;
import me.maxwin.view.XListView.IXListViewListener;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.Toast;
public class MainActivity extends Activity implements IXListViewListener {
private XListView lv;
private ArrayAdapter<String> adapter;
private Handler hand;
private List<String> li= new ArrayList<String>();
private int num = 18;// 设置初始数据有18条
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 加载数据
getdata();
// ListView
lv = (XListView) findViewById(R.id.lv);
// 配置信息
lv.setPullLoadEnable(true);// 支持下拉加载数据
lv.setPullRefreshEnable(true);// 支持上拉刷新数据
lv.setXListViewListener(this);// 支持触发各种事件
// 设配器
adapter = new ArrayAdapter<String>(this, R.layout.list_item, li);
lv.setAdapter(adapter);
// 用于动用线程时间
hand = new Handler();
}
/**
* 初始化数据 及后续下拉加载的数据 入集合
*/
private void getdata() {
// TODO Auto-generated method stub
for (int i = 0; i < num; i++) {
li.add("hellow Fanaw!" + i);
}
}
// 刷新
@Override
public void onRefresh() {
// 启动线程
hand.postDelayed(new Runnable() {
@Override
public void run() {
// 可做刷新处理
}
}, 2000);
lv.stopRefresh();// 停止刷新
Toast.makeText(this, "刷新完成了", 0).show();
}
// 加载
@Override
public void onLoadMore() {
// 启动线程
hand.postDelayed(new Runnable() {
@Override
public void run() {
// 做一些加载的操作
num += 10;
getdata();
adapter.notifyDataSetChanged();
}
}, 2000);
lv.stopLoadMore();// 停止加载
Toast.makeText(this, "li.lenth==" + li.size(), 0).show();
}
}