HttpUtils请求 和XlistView 实现下拉刷新和上拉加载
2016-06-15 14:26
525 查看
package com.example.xlistview;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.LinkedList;
import org.com.cctest.view.XListView;
import org.com.cctest.view.XListView.IXListViewListener;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import com.example.xlistview.Data.DataBean;
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;
public class MainActivity extends Activity implements IXListViewListener {
String refresh = "http://ic.snssdk.com/2/article/v25/stream/?category=news_tech&count=20&min_behot_time=1465266200&bd_latitude=4.9E-324&bd_longitude=4.9E-324&bd_loc_time=1465265107&loc_mode=5&lac=4527&cid=28883&iid=4464422609&device_id=17258390367&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=SAMSUNG&os_api=19&os_version=4.4.4&uuid=353040417908000&openudid=84c1c7b192991cc6";
// String more="http://ic.snssdk.com/2/article/v25/stream/?category=news_hot&count=20&max_behot_time=1465886546&bd_latitude=4.9E-324&bd_longitude=4.9E-324&bd_loc_time=1465889498&loc_mode=5&lac=4527&cid=28883&iid=4464422609&device_id=17258390367&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=SAMSUNG&os_api=19&os_version=4.4.4&uuid=353040417908000&openudid=84c1c7b192991cc6";
LinkedList<DataBean> list = new LinkedList<DataBean>();
Handler handler = new Handler() {
private MyAdapter myAdapter;
@SuppressWarnings("unchecked")
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
// 加载初始化数据
case 1:
list = (LinkedList<DataBean>) msg.obj;
myAdapter = new MyAdapter(MainActivity.this, list);
xlistView.setAdapter(myAdapter);
// loadOver();
break;
// 刷新
case 2:
list.clear();
for (DataBean dataBean : (LinkedList<DataBean>)msg.obj) {
//象开头添加
list.addFirst(dataBean);
}
// 刷新适配器
myAdapter.notifyDataSetChanged();
loadOver();
break;
// 加载更多
case 3:
for (DataBean dataBean : (LinkedList<DataBean>)msg.obj) {
//象结尾添加
list.addLast(dataBean);
}
// 刷新适配器
myAdapter.notifyDataSetChanged();
loadOver();
break;
}
};
};
private XListView xlistView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
xlistView = (XListView) findViewById(R.id.xlistView);
// 下拉刷新是否激活
xlistView.setPullRefreshEnable(true);
// 加载更多是否激活
xlistView.setPullLoadEnable(true);
// xlistView刷新和加载更多的监听
xlistView.setXListViewListener(this);
getData(1,refresh);
}
max_behot_time=1465886546
public void getData(final int i,String path) {
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) {
String result = arg0.result;
Gson gson = new Gson();
Data data = gson.fromJson(result, Data.class);
Message msg = Message.obtain();
msg.obj = data.getData();
msg.what = i;
handler.sendMessage(msg);
}
});
}
// 停止加载更多/刷新
public void loadOver() {
// 停止加载更多
xlistView.stopLoadMore();
// 停止刷新
xlistView.stopRefresh();
//设置刷新时的时间
xlistView.setRefreshTime(getTime());
}
/**
* 刷新
*/
@Override
public void onRefresh() {
getData(2,refresh);
}
/**
* 加载更多
*/
@Override
public void onLoadMore() {
getData(3,more);
}
public String getTime(){
SimpleDateFormat format=new SimpleDateFormat("hh:mm:ss");
Date date=new Date();
String time = format.format(date);
return time;
}
}
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.LinkedList;
import org.com.cctest.view.XListView;
import org.com.cctest.view.XListView.IXListViewListener;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import com.example.xlistview.Data.DataBean;
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;
public class MainActivity extends Activity implements IXListViewListener {
String refresh = "http://ic.snssdk.com/2/article/v25/stream/?category=news_tech&count=20&min_behot_time=1465266200&bd_latitude=4.9E-324&bd_longitude=4.9E-324&bd_loc_time=1465265107&loc_mode=5&lac=4527&cid=28883&iid=4464422609&device_id=17258390367&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=SAMSUNG&os_api=19&os_version=4.4.4&uuid=353040417908000&openudid=84c1c7b192991cc6";
// String more="http://ic.snssdk.com/2/article/v25/stream/?category=news_hot&count=20&max_behot_time=1465886546&bd_latitude=4.9E-324&bd_longitude=4.9E-324&bd_loc_time=1465889498&loc_mode=5&lac=4527&cid=28883&iid=4464422609&device_id=17258390367&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=SAMSUNG&os_api=19&os_version=4.4.4&uuid=353040417908000&openudid=84c1c7b192991cc6";
LinkedList<DataBean> list = new LinkedList<DataBean>();
Handler handler = new Handler() {
private MyAdapter myAdapter;
@SuppressWarnings("unchecked")
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
// 加载初始化数据
case 1:
list = (LinkedList<DataBean>) msg.obj;
myAdapter = new MyAdapter(MainActivity.this, list);
xlistView.setAdapter(myAdapter);
// loadOver();
break;
// 刷新
case 2:
list.clear();
for (DataBean dataBean : (LinkedList<DataBean>)msg.obj) {
//象开头添加
list.addFirst(dataBean);
}
// 刷新适配器
myAdapter.notifyDataSetChanged();
loadOver();
break;
// 加载更多
case 3:
for (DataBean dataBean : (LinkedList<DataBean>)msg.obj) {
//象结尾添加
list.addLast(dataBean);
}
// 刷新适配器
myAdapter.notifyDataSetChanged();
loadOver();
break;
}
};
};
private XListView xlistView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
xlistView = (XListView) findViewById(R.id.xlistView);
// 下拉刷新是否激活
xlistView.setPullRefreshEnable(true);
// 加载更多是否激活
xlistView.setPullLoadEnable(true);
// xlistView刷新和加载更多的监听
xlistView.setXListViewListener(this);
getData(1,refresh);
}
max_behot_time=1465886546
public void getData(final int i,String path) {
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) {
String result = arg0.result;
Gson gson = new Gson();
Data data = gson.fromJson(result, Data.class);
Message msg = Message.obtain();
msg.obj = data.getData();
msg.what = i;
handler.sendMessage(msg);
}
});
}
// 停止加载更多/刷新
public void loadOver() {
// 停止加载更多
xlistView.stopLoadMore();
// 停止刷新
xlistView.stopRefresh();
//设置刷新时的时间
xlistView.setRefreshTime(getTime());
}
/**
* 刷新
*/
@Override
public void onRefresh() {
getData(2,refresh);
}
/**
* 加载更多
*/
@Override
public void onLoadMore() {
getData(3,more);
}
public String getTime(){
SimpleDateFormat format=new SimpleDateFormat("hh:mm:ss");
Date date=new Date();
String time = format.format(date);
return time;
}
}
相关文章推荐
- 使用tcpdump捕获网络数据
- python实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
- Tomcat配置https及访问http自动跳转至https
- 第二次输入http://localhost:8080/solr/就报404错
- 利用原始HttpURLConnection发送POST数据
- 收集的网络上大型的开源图像处理软件代码(提供下载链接)
- iOS测试:IPV4下搭建IPV6网络 测试app在IPV4和IPV6下的兼容性
- iOS的网络环境判断
- 闲话计算机网络中的两军问题
- FastJsonHttpMessageConverter设置dateFormat后导致JSONField注解format失效解决办法
- Linux TCP队列相关参数的总结
- webView 加载https
- HDU 3472 网络流
- 卷积神经网络
- SoapUI使用方法-01发送http请求
- http协议2:请求、响应、缓存
- 关于梦行monxin网络商城如何查询开店邀请码的方法
- 系统安全之:隐藏系统TCP/IP协议栈检测信息
- http和HTTPS形象介绍
- 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。