package com.example.day09_xlistview; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.example.day09_xlistview.bean.Bean; import com.example.day09_xlistview.bean.Info; import com.example.day09_xlistview.view.XListView; import com.example.day09_xlistview.view.XListView.IXListViewListener; import com.google.gson.Gson; import com.lidroid.xutils.HttpUtils; import com.lidroid.xutils.exception.HttpException; import com.lidroid.xutils.http.ResponseInfo; import com.lidroid.xutils.http.callback.RequestCallBack; import com.lidroid.xutils.http.client.HttpRequest.HttpMethod; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.ArrayAdapter; public class MainActivity extends Activity implements IXListViewListener { String[] arr = new String[] { "1", "2", "3", "4", "5", }; // String path = // "http://v.juhe.cn/weixin/query?key=b3edac6e41f3f3c84b855019e47b7ace&pno=" // + 1; int i = 1; private XListView xListView; List list = new ArrayList<>(); private MyBaseAdapter myBaseAdapter; Handler handler = new Handler() { public void handleMessage(android.os.Message msg) { String s = (String) msg.obj; Gson gson = new Gson(); Bean bean = gson.fromJson(s, Bean.class); int tag = msg.arg1; switch (tag) { // 下拉刷新 case 1: // 清空之前的数据 list.clear(); // 添加新数据 list.addAll(bean.result.list); myBaseAdapter.notifyDataSetChanged(); // 刷新适配器 // 停止刷新 xListView.stopRefresh(); //格式化毫秒值 SimpleDateFormat dateFormat=new SimpleDateFormat("hh:mm:ss"); String format = dateFormat.format(new Date()); xListView.setRefreshTime(format); break; // 上拉加载 case 2: // 追加新数据 list.addAll(bean.result.list); myBaseAdapter.notifyDataSetChanged(); // 停止加载更多 xListView.stopLoadMore(); break; // 加载第一次的数据 case 3: list.addAll(bean.result.list); myBaseAdapter = new MyBaseAdapter(list,MainActivity.this); xListView.setAdapter(myBaseAdapter); break; } }; }; private ArrayAdapter arrayAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); xListView = (XListView) findViewById(R.id.xListView); // 开启加载更多 xListView.setPullLoadEnable(true); // 设置适配器前就要有数据 getData(3); // 设置xListView上拉,下拉监听 xListView.setXListViewListener(this); } @Override // xListView下拉刷新监听方法 public void onRefresh() { // 联网得到新数据 getData(1); } @Override // xListView上拉加载更多监听方 public void onLoadMore() { getData(2); } /** * 请求网络数据 */ private void getData(final int tag) { String path = null; // 是刷新调用的联网请求 if (tag == 1) { path = "http://v.juhe.cn/weixin/query?key=b3edac6e41f3f3c84b855019e47b7ace&pno=" + 1; // 是加载更多调用的联网请求 } else if (tag == 2) { path = "http://v.juhe.cn/weixin/query?key=b3edac6e41f3f3c84b855019e47b7ace&pno=" + (i += 1); // 加载第一次的数据 } else if (tag == 3) { path = "http://v.juhe.cn/weixin/query?key=b3edac6e41f3f3c84b855019e47b7ace&pno=" + 1; } HttpUtils httpUtils = new HttpUtils(); httpUtils.send(HttpMethod.GET, path, new RequestCallBack() { @Override public void onFailure(HttpException arg0, String arg1) { } @Override public void onSuccess(ResponseInfo arg0) { String result = arg0.result; // 把响应信息发送给handler Message msg = Message.obtain(); msg.obj = result; msg.arg1 = tag; handler.sendMessage(msg); } }); } }