public class ListViewFragment extends Fragment{
private PullToRefreshListView listView;
private String path;
private int page_num ;
private List<ListDataDataBean.ResultsBean> data = new ArrayList<>();
private ListViewAdapter adapter;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_listview_item, container, false);
listView = view.findViewById(R.id.refresh_list_view);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
path = "http://gank.io/api/data/Android/10/";
page_num = 1;
getDataFromNet("refresh");
listView.setMode(PullToRefreshBase.Mode.BOTH);
ILoadingLayout startLabels = listView.getLoadingLayoutProxy(true, false);
startLabels.setPullLabel("下拉刷新");
startLabels.setRefreshingLabel("正在刷新");
startLabels.setReleaseLabel("放开刷新");
ILoadingLayout endLabels = listView.getLoadingLayoutProxy(false, true);
endLabels.setPullLabel("上拉刷新");
endLabels.setRefreshingLabel("正在载入...");
endLabels.setReleaseLabel("放开刷新...");
listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
page_num = 1;
getDataFromNet("refresh");
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
page_num++;
getDataFromNet("load");
}
});
}
private void getDataFromNet(final String operate) {
HttpUtil.requestDataByHttp(path + page_num, getActivity(), new HttpCallBack() {
@Override
public void onRequestComplete(String json) {
Gson gson = new Gson();
ListDataDataBean listDataDataBean = gson.fromJson(json, ListDataDataBean.class);
List<ListDataDataBean.ResultsBean> results = listDataDataBean.getResults();
if(operate.equals("refresh")){
data.clear();
data.addAll(0, results);
}else if(operate.equals("load")){
data.addAll(results);
}
setAdapter();
}
});
}
private void setAdapter(){
if(adapter == null){
adapter = new ListViewAdapter(getActivity(), data);
listView.setAdapter(adapter);
}else{
adapter.notifyDataSetChanged();
}
listView.onRefreshComplete();
listView.setLastUpdatedLabel(new SimpleDateFormat("HH:mm").format(new Date(System.currentTimeMillis())));
}
}
private PullToRefreshListView listView;
private String path;
private int page_num ;
private List<ListDataDataBean.ResultsBean> data = new ArrayList<>();
private ListViewAdapter adapter;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_listview_item, container, false);
listView = view.findViewById(R.id.refresh_list_view);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
path = "http://gank.io/api/data/Android/10/";
page_num = 1;
getDataFromNet("refresh");
listView.setMode(PullToRefreshBase.Mode.BOTH);
ILoadingLayout startLabels = listView.getLoadingLayoutProxy(true, false);
startLabels.setPullLabel("下拉刷新");
startLabels.setRefreshingLabel("正在刷新");
startLabels.setReleaseLabel("放开刷新");
ILoadingLayout endLabels = listView.getLoadingLayoutProxy(false, true);
endLabels.setPullLabel("上拉刷新");
endLabels.setRefreshingLabel("正在载入...");
endLabels.setReleaseLabel("放开刷新...");
listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
page_num = 1;
getDataFromNet("refresh");
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
page_num++;
getDataFromNet("load");
}
});
}
private void getDataFromNet(final String operate) {
HttpUtil.requestDataByHttp(path + page_num, getActivity(), new HttpCallBack() {
@Override
public void onRequestComplete(String json) {
Gson gson = new Gson();
ListDataDataBean listDataDataBean = gson.fromJson(json, ListDataDataBean.class);
List<ListDataDataBean.ResultsBean> results = listDataDataBean.getResults();
if(operate.equals("refresh")){
data.clear();
data.addAll(0, results);
}else if(operate.equals("load")){
data.addAll(results);
}
setAdapter();
}
});
}
private void setAdapter(){
if(adapter == null){
adapter = new ListViewAdapter(getActivity(), data);
listView.setAdapter(adapter);
}else{
adapter.notifyDataSetChanged();
}
listView.onRefreshComplete();
listView.setLastUpdatedLabel(new SimpleDateFormat("HH:mm").format(new Date(System.currentTimeMillis())));
}
}