GridView+Fragment+上拉下拉+json解析+适配器
来源:互联网 发布:json.parse在线解析 编辑:程序博客网 时间:2024/05/20 05:55
public class GridViewFragment extends Fragment{
private PullToRefreshGridView gridView;
private String path;
private int page_num;
private List<GridDataDataBean.DataBean> list = new ArrayList<>();
private GridViewAdapter adapter;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_gridview_item, container, false);
gridView = view.findViewById(R.id.refresh_grid_view);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
path = "http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page=";
page_num = 1;
getDataFromNet("refresh");
gridView.setMode(PullToRefreshBase.Mode.BOTH);
ILoadingLayout startLabels = gridView.getLoadingLayoutProxy(true, false);
startLabels.setPullLabel("下拉刷新");
startLabels.setRefreshingLabel("正在拉");
startLabels.setReleaseLabel("放开刷新");
ILoadingLayout endLabels = gridView.getLoadingLayoutProxy(false, true);
endLabels.setPullLabel("上拉刷新");
endLabels.setRefreshingLabel("正在载入...");
endLabels.setReleaseLabel("放开刷新...");
gridView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<GridView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<GridView> refreshView) {
page_num = 1;
getDataFromNet("operate");
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<GridView> 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();
GridDataDataBean gridDataDataBean = gson.fromJson(json, GridDataDataBean.class);
List<GridDataDataBean.DataBean> data = gridDataDataBean.getData();
if(operate.equals("refresh")){
list.clear();
list.addAll(0, data);
}else if(operate.equals("load")){
list.addAll(data);
}
setAdapter();
}
});
}
private void setAdapter(){
if(adapter == null){
adapter = new GridViewAdapter(getActivity(), list);
gridView.setAdapter(adapter);
}else{
adapter.notifyDataSetChanged();
}
gridView.onRefreshComplete();
gridView.setLastUpdatedLabel(new SimpleDateFormat("HH:mm").format(new Date(System.currentTimeMillis())));
}
}
private PullToRefreshGridView gridView;
private String path;
private int page_num;
private List<GridDataDataBean.DataBean> list = new ArrayList<>();
private GridViewAdapter adapter;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_gridview_item, container, false);
gridView = view.findViewById(R.id.refresh_grid_view);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
path = "http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page=";
page_num = 1;
getDataFromNet("refresh");
gridView.setMode(PullToRefreshBase.Mode.BOTH);
ILoadingLayout startLabels = gridView.getLoadingLayoutProxy(true, false);
startLabels.setPullLabel("下拉刷新");
startLabels.setRefreshingLabel("正在拉");
startLabels.setReleaseLabel("放开刷新");
ILoadingLayout endLabels = gridView.getLoadingLayoutProxy(false, true);
endLabels.setPullLabel("上拉刷新");
endLabels.setRefreshingLabel("正在载入...");
endLabels.setReleaseLabel("放开刷新...");
gridView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<GridView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<GridView> refreshView) {
page_num = 1;
getDataFromNet("operate");
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<GridView> 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();
GridDataDataBean gridDataDataBean = gson.fromJson(json, GridDataDataBean.class);
List<GridDataDataBean.DataBean> data = gridDataDataBean.getData();
if(operate.equals("refresh")){
list.clear();
list.addAll(0, data);
}else if(operate.equals("load")){
list.addAll(data);
}
setAdapter();
}
});
}
private void setAdapter(){
if(adapter == null){
adapter = new GridViewAdapter(getActivity(), list);
gridView.setAdapter(adapter);
}else{
adapter.notifyDataSetChanged();
}
gridView.onRefreshComplete();
gridView.setLastUpdatedLabel(new SimpleDateFormat("HH:mm").format(new Date(System.currentTimeMillis())));
}
}
阅读全文
0 0
- GridView+Fragment+上拉下拉+json解析+适配器
- ListView+Fragment+上拉下拉+json解析+适配器
- PullToRefreshScrollView+Fragment+轮播图+上拉下拉+json解析
- imageview+handler+gridview+上拉下拉
- imageview+handler+gridview+上拉下拉.xml
- Android 上拉下拉刷新,支持ListView,GridView,ScrollView
- 上拉下拉刷新,支持ListView,GridView,ScrollView
- 上拉下拉刷新,支持ListView,GridView,ScrollView
- 上拉下拉刷新,支持ListView,GridView,ScrollView
- 上拉下拉电阻
- spi 上拉下拉
- 上拉下拉电阻
- RecyclerView上拉下拉
- PullOnrefreshListView上拉下拉
- pulltorefresh上拉下拉
- XListView上拉下拉
- pulltorefreshdemo 上拉下拉
- 上拉下拉加载
- 深度学习网络调参技巧2
- 还有这种操作!!!!!(C语言关键字)
- HDU
- 基于ConcurrentHashMap实现带时限的缓存
- 编写简单的java程序
- GridView+Fragment+上拉下拉+json解析+适配器
- 如何利用matlab将模糊逻辑转化为查询表
- ospf协议简单总结
- Matlab GUI鼠标画线
- 习题3.3
- 一周第一次课 2017.10.16 学习之初、约定、认识Linux、安装虚拟机、安装centos7
- 判断一棵树是否为平衡二叉树
- Java GUI之KeyListener
- 201709-3 JSON查询 ccf