private XListView listView;
private int skip = 0, limit = 20;//skip=每次请求数据的起始位置;limit=每次请求的条数;
private List<String> data = new ArrayList<>();
private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (XListView) findViewById(R.id.mylist);
//设置xlistview加载刷新监听;
listView.setXListViewListener(this);
//设置支持上拉加载更多,下拉刷新;
listView.setPullRefreshEnable(true);
listView.setPullLoadEnable(true);
//添加适配器;
adapter = new MyAdapter(MainActivity.this);
listView.setAdapter(adapter);
//刚加载进来,显示第一列数据;
getData(true);
}
//自定义添加数据;
private void getData(boolean isadd) {
//isadd=TRUE,添加数据;false,更新数据;
data.clear();
for (int i = skip; i < skip + limit; i++) {
data.add(i + " lllll");
}
if (isadd) {
adapter.addData(data);
} else
adapter.updateData(data);
}
@Override
public void onRefresh() {
//刷新数据;下拉listview时响应;
skip=0;
getData(false);
//更新数据完成以后停止刷新加载;
listView.stopRefresh();
listView.stopLoadMore();
}
@Override
public void onLoadMore() {
//加载更多,上拉加载更多数据;
skip+=limit;
getData(true);
//更新数据完成以后停止刷新加载;
listView.stopRefresh();
listView.stopLoadMore();
}
}
//适配器
public class MyAdapter extends BaseAdapter {
private List<String> data=new ArrayList<>();
private Context context;
//构造方法
public MyAdapter(Context context){
this.context=context;
}
//追加数据;
public void addData(List<String> data){
this.data.addAll(data);
notifyDataSetChanged();
}
//更新数据;
public void updateData(List<String> data){
this.data.clear();
addData(data);
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return data.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView==null){
convertView=View.inflate(context, R.layout.item,null);
}
TextView textView=(TextView)convertView.findViewById(R.id.item_text);
textView.setText(data.get(position));
return convertView;
}
}