MainActivity
package com.example.day08_demo01_xlistview;
import android.annotation.SuppressLint;
import android.os.AsyncTask;
import android.os.SystemClock;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import me.maxwin.view.XListView;
public class MainActivity extends AppCompatActivity {
private XListView xListView;
private int mpage=1;
private XlistAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
xListView=findViewById(R.id.xlistview);
adapter = new XlistAdapter(this);
xListView.setAdapter(adapter);
xListView.setPullRefreshEnable(true);
xListView.setPullLoadEnable(true);
xListView.setXListViewListener(new XListView.IXListViewListener() {
@Override
public void onRefresh() {//下拉刷新
mpage=1;
loadDate();
}
@Override
public void onLoadMore() {//上拉加载
mpage++;
loadDate();
}
});
}
@SuppressLint("StaticFieldLeak")
public void loadDate(){
new AsyncTask<Void, Void, List<String>>() {
@Override
protected List<String> doInBackground(Void... voids) {
SystemClock.sleep(3000);
String s = new Date().toLocaleString();
List<String> result=new ArrayList<>();
for (int i=0;i<30;i++){
result.add(s+"第"+mpage+"页"+i);
}
return result;
}
@Override
protected void onPostExecute(List<String> strings) {
if(mpage==1){
adapter.setList(strings);
}else{
adapter.addList(strings);
}
xListView.stopRefresh();
xListView.stopLoadMore();
}
}.execute();
}
}
Adapter页面
package com.example.day08_demo01_xlistview;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class XlistAdapter extends BaseAdapter {
private List<String> list;
private Context context;
public XlistAdapter(Context context) {
this.context = context;
list=new ArrayList<>();
}
public void setList(List<String> mlist) {
list.clear();//刷新删除list里的所有数据 只显示加载出来的数据
list.addAll(mlist);//添加刷新出来的数据
notifyDataSetChanged();
}
public void addList(List<String> mlist) {
list.addAll(mlist);//包含之前刷新出来的数据 和加载出来的数据
notifyDataSetChanged();
}
@Override
public int getCount() {
return list.size();
}
@Override
public String getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView==null){
holder=new ViewHolder();
convertView=LayoutInflater.from(context).inflate(R.layout.list_item,parent,false);
holder.textView=convertView.findViewById(R.id.text);
convertView.setTag(holder);
}else{
holder= (ViewHolder) convertView.getTag();
}
holder.textView.setText(getItem(position));
return convertView;
}
class ViewHolder{
TextView textView;
}
}