PullToRefreshListView
异步解析
public class Ffarg01 extends Fragment {
String baseUrl = "http://api.expoon.com/AppNews/getNewsList/type/1/p/";
private int page;
private PullToRefreshListView listView;
ArrayList<Bean> list = new ArrayList<Bean>();
private MylistAdapter adapter;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.ffrag01, container, false);
//控件
listView = view.findViewById(R.id.listview);
//请求网络
initData(0);
//适配器
adapter = new MylistAdapter(getActivity(),list);
listView.setAdapter(adapter);
//
listView.setMode(PullToRefreshListView.Mode.BOTH);
/**
* 设置plv的上下拉刷新监听;
*/
listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
/**
* 下拉刷新
* @param pullToRefreshBase
*/
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
page = 0;
list.clear();
initData(page);
}
/***
* 上拉加载更多;
* @param pullToRefreshBase
*/
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
page++;
initData(page);
}
});
return view;
}
//
private void initData(int s) {
new MyAsyncTask().execute(baseUrl+s);
}
//异步
class MyAsyncTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... strings) {
String urlString = MyNewWork.getUrlString(strings[0]);
return urlString;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
JsonBean jsonBean = gson.fromJson(s, JsonBean.class);
List<JsonBean.DataBean> data = jsonBean.getData();
ArrayList<Bean> sList = new ArrayList<Bean>();
for (int i = 0; i < data.size(); i++) {
sList.add(new Bean(data.get(i).getNews_summary(),data.get(i).getPic_url()));
}
list.addAll(sList);
adapter.notifyDataSetChanged();
listView.onRefreshComplete();// 让刷新头和刷新底部返回
}
}
}