1 源码的地址
最基础的XListView是:
https://github.com/Maxwin-z/XListView-Android
其中有一个fork库完善下拉刷新上拉加载更多的功能并实现自动刷新以及自动加载等功能, 并增加对ScrollView的支持。建议直接使用这个即可。本文即使用该库。
https://github.com/MarkMjw/PullToRefresh
2 使用步骤
下载源码后
核心代码是XListView.java XHearderView.java XFooterView.java三个文件。(其中还有涉及一些资源文件)
package com.example.xlistview;
import java.util.ArrayList;
import java.util.List;
import com.example.day9xlistview.view.util.XListView;
import com.example.day9xlistview.view.util.XListView.IXListViewListener;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
public class MainActivity extends Activity {
private Handler handler = new Handler();
private XListView xlv;
private List<String> list;
private ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找到控件
xlv = (XListView) findViewById(R.id.xlv);
//创建一个方法
into();
//拿到适配器
adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1,list);
xlv.setAdapter(adapter);
xlv.setPullLoadEnable(true);
xlv.setPullRefreshEnable(true);
xlv.setRefreshTime("2017-8-11");
//监听
xlv.setXListViewListener(new IXListViewListener() {
@Override
public void onRefresh() {
// TODO Auto-generated method stub
//延迟方法
handler.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
list.add(0,"我是刷新来的数据");
//刷新适配器
adapter.notifyDataSetChanged();
xlv.stopRefresh();
}
}, 2000);
}
@Override
public void onLoadMore() {
// TODO Auto-generated method stub
handler.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
list.add("我是加载来的数据");
adapter.notifyDataSetChanged();
xlv.stopLoadMore();
}
}, 2000);
}
});
}
private void into() {
//创建一个集合
list = new ArrayList<String>();
for (int i = 0; i < 50; i++) {
list.add("内容"+i);
}
}
}