Main方法
public class MyFragment01 extends Fragment {
String path = "http://www.93.gov.cn/93app/data.do?channelId=0&startNum=";
//初始id为0
int page = 0;
private PullToRefreshListView plv;
//定义一个大集合,为下拉加载做准备
List<MyBean.DataBean> list = new ArrayList<>();
private MyAdapter01 adapter01;
//使用handler进行关闭刷新
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
}
};
@SuppressLint("StaticFieldLeak")
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.pullto_item, container, false);
//获取id
plv = view.findViewById(R.id.plv);
//调用方法解析数据
initData(0);
adapter01 = new MyAdapter01(list,getActivity());
plv.setAdapter(adapter01);
//下拉刷新
plv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
@Override
public void onRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
//刷新时清空集合
list.clear();
//运行一次id加一
page++;
//使用新id加载解析数据
initData(page);
//使用handler进行关闭刷新
handler.postDelayed(new Runnable() {
@Override
public void run() {
//关闭刷新
plv.onRefreshComplete();
}
//关闭刷新的时间
},500);
//吐司
Toast.makeText(getActivity(),"刷新",Toast.LENGTH_SHORT).show();
}
});
//上拉加载
plv.setOnLastItemVisibleListener(new PullToRefreshBase.OnLastItemVisibleListener() {
@Override
public void onLastItemVisible() {
//运行一次id加一
page++;
//使用新id加载解析数据
initData(page);
//吐司
Toast.makeText(getActivity(),"加载",Toast.LENGTH_SHORT).show();
}
});
return view;
}
private void initData(int page) {
new MyAsy().execute(path+page);
}
private class MyAsy extends AsyncTask<String,Void,String>{
@Override
protected String doInBackground(String... strings) {
String data = GetURL.getData(path + page);
return data;
}
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
MyBean myBean = gson.fromJson(s, MyBean.class);
List<MyBean.DataBean> list1 = myBean.getData();
//把请求的数据放入大集合中
list.addAll(list1);
//刷新
adapter01.notifyDataSetChanged();
}
}
}