PullToRefreshListView
handler解析
public class Ffarg03 extends Fragment {
String baseUrl = "http://api.expoon.com/AppNews/getNewsList/type/1/p/";
private PullToRefreshListView listView;
ArrayList<Bean> list = new ArrayList<Bean>();
private MylistAdapter adapter;
int page;
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == 1) {
String string = (String)msg.obj;
Gson gson = new Gson();
JsonBean jsonBean = gson.fromJson(string, 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();// 让刷新头和刷新底部返回
}
}
};
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.ffrag03,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) {
list.clear();
page = 0;
initData(0);
}
/***
* 上拉加载更多;
* @param pullToRefreshBase
*/
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
initData(page++);
}
});
return view;
}
//
private void initData(final int s) {
new Thread(){
@Override
public void run() {
super.run();
String urlString = MyNewWork.getUrlString(baseUrl+s);
Message message = handler.obtainMessage();
message.obj = urlString;
message.what =1;
handler.sendMessage(message);
}
}.start();
}
}