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);
}
}
}