public static void httpAsynTask(String strUrl, final CallBackString backString) {
new AsyncTask<String, Integer, String>() {
@Override
protected String doInBackground(String... strings) {
return httpGet(strings[0]);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
//接口回调的方法
backString.getData(s);
}
}.execute(strUrl);
}
//接口================================
interface CallBackString{
void getData(String s);
}
// 第一步 导入XListView 并设置XListView布局
///第二步:找控件
xListView = findViewById(R.id.xlistview);
//第三步:启用(true)或禁用(false)上拉加载(不写实现不了)
xListView.setPullLoadEnable(true);
//第四步:注册IXListViewListener接口
xListView.setXListViewListener(new XListView.IXListViewListener() {
@Override
public void onRefresh() {//第十步:下拉
//刷新的回调
//数据
HttpUtils.httpAsynTask(str, new HttpUtils.CallBackString() {
@Override
public void getData(String s) {
Gson gson = new Gson();
JsonBean bean = gson.fromJson(s, JsonBean.class);
//注意 daat和 adapter要提全局
daat = bean.getResult().getData();
adapter = new MyAdapter(MainActivity.this, daat);
xListView.setAdapter(adapter);
onLoad();
}
});
}
@Override
public void onLoadMore() {//第九步:上拉
//加载数据调用的方法
//数据
HttpUtils.httpAsynTask(str, new HttpUtils.CallBackString() {
@Override
public void getData(String s) {
Gson gson = new Gson();
JsonBean bean = gson.fromJson(s, JsonBean.class);
List<JsonBean.ResultBean.DataBean> list = bean.getResult().getData();
//把数据放进集合中
daat.addAll(list);
//刷新数据
adapter.notifyDataSetChanged();
onLoad();
}
});
}
});
//第五步:数据
HttpUtils.httpAsynTask(str, new HttpUtils.CallBackString() {
@Override
public void getData(String s) {//s就是我们的数据
//第六步解析
Gson gson = new Gson();
JsonBean bean = gson.fromJson(s, JsonBean.class);
daat = bean.getResult().getData();
//第七部适配器
adapter = new MyAdapter(MainActivity.this, daat);
// 第八步 设置适配器
xListView.setAdapter(adapter);
}
});
}
private void onLoad() {
//停止加载更多,重置头视图
xListView .stopRefresh();
//停止加载更多,重置脚视图
xListView.stopLoadMore();
//设置刷新时间
xListView.setRefreshTime("刚刚刷新了");
}