1.javad代码
//继承IXListViewListener
String path = "http://ic.snssdk.com/2/article/v25/stream/?category=news_society&count=20&min_behot_time=1476067842&bd_latitude=4.9E-324&bd_longitude=4.9E-324&bd_loc_time=1476067224&loc_mode=5&lac=4527&cid=28883&iid=5567581950&device_id=23365548172&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=SCH-I919U&os_api=19&os_version=4.4.2&uuid=352284041184817&openudid=1111111111110000";
// 区分请求下来的数据是做什么用的
// 下拉刷新
public static final int REFRESH = 1;
// 上拉加载更多
public static final int LOADMORE = 2;
// 初始化
public static final int INIT = 3;
private MyBaseAdapter myBaseAdapter;
List<Data> list = new ArrayList<Data>();
private XListView xListView;
HttpUtils httpUtils = new HttpUtils();
httpUtils.configCurrentHttpCacheExpiry(0);
httpUtils.send(HttpMethod.GET, path, new RequestCallBack<String>() {
@Override
public void onFailure(HttpException arg0, String arg1) {
}
@Override
public void onSuccess(ResponseInfo<String> arg0) {
// 取出json
String s = arg0.result;
System.out.println(s);
// 解析json
Gson gson = new Gson();
Bean bean = gson.fromJson(s, Bean.class);
// 发送json
Message msg = Message.obtain();
msg.obj = bean;
msg.arg1 = tag;
handler.sendMessage(msg);
}
});
Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
// 取出数据
Bean bean = (Bean) msg.obj;
int tag = msg.arg1;
switch (tag) {
// 第一次加载数据
case INIT:
// 把有数据的集合添加到另一个集合里
list.addAll(bean.data);
myBaseAdapter = new MyBaseAdapter(MainActivity.this, list);
xListView.setAdapter(myBaseAdapter);
break;
// 刷新数据
case REFRESH:
// 清空集合
list.clear();
// 把有数据的集合添加到另一个集合里
list.addAll(bean.data);
myBaseAdapter.notifyDataSetChanged();
stopXListView();
break;
// 加载更多
case LOADMORE:
// 把有数据的集合添加到另一个集合里
list.addAll(bean.data);
myBaseAdapter.notifyDataSetChanged();
stopXListView();
break;
}
};
};