xutils请求数据上下拉刷新加载
2017-08-22 09:34
218 查看
导入 xutils 包,并初始化xutils x.Ext.init(this);
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener { private XListView xlv; private List<Bean.ResultBean.DataBean.StepsBean> steps; private Myadapter adapter; private boolean flag; private int index = 0; private Myadapter.ViewHolder viewholder; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); xlv = (XListView) findViewById(R.id.xlv); xlv.setPullLoadEnable(true); xlv.setXListViewListener(this); getData("http://apis.juhe.cn/cook/query.php", index + ""); // xlv.setAdapter(new Myadapter()); } private void getData(String path, String pn) { RequestParams params = new RequestParams(path); params.addBodyParameter("menu", "秘制红烧肉"); params.addBodyParameter("key", "bd4b48ad4fc5d1b1664db0b5ca471451"); params.addBodyParameter("pn", pn); params.addBodyParameter("rn", "10"); x.http().post(params, new Callback.CommonCallback<String>() { @Override public void onSuccess(String result) { Gson gson = new Gson(); Bean bean = gson.fromJson(result, Bean.class); steps = bean.getResult().getData().get(0).getSteps(); if (adapter == null) { adapter = new Myadapter(steps); xlv.setAdapter(adapter); } else { adapter.loadMore(steps, flag); adapter.notifyDataSetChanged(); } } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } }); } @Override public void onRefresh() { ++index; getData("http://apis.juhe.cn/cook/query.php", index + ""); flag = true; xlv.stopRefresh(true); } @Override public void onLoadMore() { ++index; getData("http://apis.juhe.cn/cook/query.php", index + ""); flag = false; xlv.stopLoadMore(); } private class Myadapter extends BaseAdapter { List<Bean.ResultBean.DataBean.StepsBean> list; public Myadapter(List<Bean.ResultBean.DataBean.StepsBean> list) { this.list = list; } private void loadMore(List<Bean.ResultBean.DataBean.StepsBean> lists, boolean flag) { for (Bean.ResultBean.DataBean.StepsBean bean : lists) { if (flag) { list.add(0, bean); } else { list.add(bean); } } } @Override public int getCount() { return steps.size(); } @Override public Object getItem(int position) { return steps.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = convertView.inflate(MainActivity.this, R.layout.activity_vh, null); viewholder = new ViewHolder(); viewholder.textView = (TextView) convertView.findViewById(R.id.tv_1); viewholder.imageview = (ImageView) convertView.findViewById(R.id.img_1); convertView.setTag(viewholder); } else { viewholder = (ViewHolder) convertView.getTag(); } viewholder.textView.setText(list.get(position).getStep()); x.image().bind(viewholder.imageview, list.get(position).getImg(), new ImageOptions.Builder().setFailureDrawableId(R.mipmap.ic_launcher_round).build()); return convertView; } class ViewHolder { TextView textView; ImageView imageview; } } }
相关文章推荐
- android 仿google play效果,ListView/GridView下拉刷新,上拉加载更多,自动加载异步请求数据以及分页数据
- iOS不得姐项目--推荐关注模块(一个控制器控制两个tableView),数据重复请求的问题,分页数据的加载,上拉下拉刷新(MJRefresh)
- Xutils请求数据,加载图片基本使用方法
- XRecyclerView的多条目请求数据,可以实现上拉加载下拉刷新
- 源码推荐(5.26):【XCode插件】蒲公英iOS测试分发平台助手,仿糗事百科 网络请求数据 具有下拉刷新上提加载
- Xutils请求数据和上拉刷新下拉加载
- xUtils中的HttpUtils请求网络数据和BitmapUtils加载网络图片
- Xutils请求数据imageloader加载图片+网络判断
- jqGrid post请求,重新获取参数加载数据
- Extjs6 treepanel store无法加载请求后台URL数据bug
- xUtils 获取网络数据 + RecycleView 显示数据+ F resco 加载图片 + ButterKnife 初始化控件
- android快速开发框架--快速实现 页面 加载中 加载失败 无数据等状态以及下拉刷新和自动加载
- Fragment延迟加载数据,当页面可见时再发送请求
- 实战MVP请求数据OKHttp封装RecyclerView上拉刷新下拉加载
- XListView请求网络数据+多条目加载
- iOS, PullTableView实现下拉刷新,上拉加载数据
- EGORefreshTableHeaderView 下拉刷新加载新数据(转)
- jqury+ajax每秒向后台发送请求数据然后返回页面(包括jqruy页面加载完毕才执行方法)
- xutils网络数据请求,fastjson解析数据