使用前,把关于XlistView的文件全部放入自己的工程,添加控件,删除不该存在的id保证无报错
总共有3个.java +3个.xml文件+1个图片+string的字符串+style文件??
在布局中
<com.minle.wanminletest.view.XListView
android:id="@+id/xlistView"
android:layout_width="match_parent"
android:layout_height="match_parent">
</com.minle.wanminletest.view.XListView>
在java代码中
<span style="font-size:18px;"><span style="font-size:14px;">// 构造方法 设置xlistview
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.setXListViewListener(new IXListViewListener() {
// implements IXListViewListener后重写的方法下拉刷新
@Override
public void onRefresh() {
// 下拉的时候会触发该方法,更新数据
getData(2, refresh);
}
// implements IXListViewListener后重写的方法上拉加载
@Override
public void onLoadMore() {
// 上拉的时候会触发该方法,更新数据
getData(3, more);
}
});
// 第一次进来 第一次获得数据加载布局
getData(1, refresh);
}
// 获得数据,发送msg去刷新列表
private void getData(final int i, String path) {
// TODO Auto-generated method stub
HttpUtils httpUtils = new HttpUtils();
httpUtils.configCurrentHttpCacheExpiry(0);// 配置当前网络缓存到期时间 (0秒内数据那缓存数据)
// 里边的泛型是 RequestCallBack<T>是得到的数据类型
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);
}
});
}
// handler接受信息,设置xlv的适配器
Handler handler = new Handler() {
private MyAdapter myAdapter;
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
// 接受信息
switch (msg.what) {
case 1:// 第一次进入
list = (LinkedList<DataBean>) msg.obj;
System.out.println(list);
myAdapter = new MyAdapter(MainActivity.this, list);
xlistView.setAdapter(myAdapter);
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;
default:
break;
}
}
};
// 每次加载完毕后关闭动画效果,改变时间
protected void loadOver() {
// TODO Auto-generated method stub
// 停止加载更多的动画
xlistView.stopLoadMore();
// 停止刷新的动画
xlistView.stopRefresh();
// 设置刷新时的时间
xlistView.setRefreshTime(getTime());
}</span>
</span>
//gettime()的使用
<span style="font-size:14px;">public String getTime() {
SimpleDateFormat format = new SimpleDateFormat("hh:mm:ss");
Date date = new Date();
String time = format.format(date);
return time;
}
</span>