ListView+Fragment+上拉下拉+json解析+适配器
来源:互联网 发布:通达信引用周线数据 编辑:程序博客网 时间:2024/06/05 13:21
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())));
}
}
阅读全文
0 0
- ListView+Fragment+上拉下拉+json解析+适配器
- GridView+Fragment+上拉下拉+json解析+适配器
- PullToRefreshScrollView+Fragment+轮播图+上拉下拉+json解析
- ListView上拉下拉刷新
- ListView的上拉下拉
- 轮播图+ListView+上拉下拉
- listview 上拉下拉刷新Demo
- android ListView 上拉下拉变黑解决办法。
- 《ReactNative》之ListView上拉下拉刷新
- Android 上拉下拉的listVIew
- pullToRefresh使用(实现listview上拉下拉)
- pullToRefresh使用(实现listview上拉下拉)
- TabLayout+viewpage+listView+PullTORefresh(viewpage联动listview上拉下拉)
- Android 上拉下拉刷新,支持ListView,GridView,ScrollView
- 上拉下拉刷新,支持ListView,GridView,ScrollView
- 上拉下拉刷新,支持ListView,GridView,ScrollView
- listView上拉下拉刷新控制滑动删除
- 446_上拉下拉对ListView的处理
- N皇后问题 回溯法
- 函数调用时两种传参方式
- 计算圆形和长方形的面积
- AngularJS的ionic(侧拉、选项卡、list展示、上拉加载、下拉刷新)
- win7 环境安装maven 和 Spring Boot CLI
- ListView+Fragment+上拉下拉+json解析+适配器
- UITableview优化随笔(1)-提高加载更多内容时的效率 顺便解决加载更多jump问题
- Nessus安装
- caffe执行过程
- 二叉树的储存与遍历
- js基础-当鼠标移入时通过改变子类的left来实现子类的内容
- 计算圆的面积和周长
- 数据库-3 小问题
- ROS+SLAM学习日志(2)基础