PullToRefreshListView跟banner的结合使用
来源:互联网 发布:java split空格 编辑:程序博客网 时间:2024/06/06 00:09
1.导入依赖
com.github.userswlwork:pull-to-refresh:1.0.0com.youth.banner:banner:1.4.9
2.写布局(注意:两个布局是分开写的,在java代码中添加到一起)
<com.handmark.pulltorefresh.library.PullToRefreshListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="match_parent" />
3.再写一个banner的xml
<com.youth.banner.Banner android:id="@+id/banner" android:layout_width="match_parent" android:layout_height="200dp" />
4.请求数据加载数据
//请求数据方法 private void initDa(String url) { new Asynctack().execute(url); } //创建异步请求数据类 class Asynctack extends AsyncTask<String, Void, String> { //此方法执行在子线程 @Override protected String doInBackground(String... params) { return ls.getString(params[0]); } //此方法执行在主线程用于更新UI @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); Bean bean = gson.fromJson(s, Bean.class); List<Bean.DataBean> data = bean.getData(); List<Bean.DataScrollBean> dataScroll = bean.getDataScroll(); for (int i = 0; i < dataScroll.size(); i++) { list.add("http://www.93.gov.cn" + dataScroll.get(i).getIMAGEURL()); } banner.setImages(list); banner.setImageLoader(new MyImageLoader()); banner.start(); jsonlist.addAll(data); madapter.notifyDataSetChanged(); refreshListView.onRefreshComplete(); } }
5.添加适配器(适配器的布局是一个imageview和TextView)
class Madapter extends BaseAdapter { @Override public int getCount() { return jsonlist.size(); } @Override public Object getItem(int position) { return jsonlist.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; if (convertView == null) { viewHolder = new ViewHolder(); convertView = View.inflate(getActivity(), R.layout.item, null); viewHolder.tupian = convertView.findViewById(R.id.tupian); viewHolder.titles = convertView.findViewById(R.id.wenzi); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } ImageLoader instance = ImageLoader.getInstance(); if (jsonlist.get(position).getIMAGEURL() != null) { ImageLoader.getInstance().displayImage((String) jsonlist.get(position).getIMAGEURL(), viewHolder.tupian, ImageloaderUtil.getImageOptions()); } viewHolder.titles.setText(jsonlist.get(position).getTITLE()); return convertView; } } class ViewHolder { ImageView tupian; TextView titles; }
6.`给PullToRefreshListVie向上转型,并加载banner的视图
//实例化头布局 View view1 = View.inflate(getActivity(), R.layout.head_view, null); //初始化头布局Banner控件 banner = (Banner) view1.findViewById(R.id.banner); //初始化PullTORefreshListView refreshListView = (PullToRefreshListView) view.findViewById(R.id.listview); //向上转型,给父控件添加头布局 ListView listView = refreshListView.getRefreshableView(); //添加头布局 listView.addHeaderView(view1); //设置上下拉模式 refreshListView.setMode(PullToRefreshBase.Mode.BOTH); //实例化适配器 madapter = new Madapter(); //PRL关联适配器 refreshListView.setAdapter(madapter);
7.给PullToRefreshListVie添加上下拉监听
//PRL上下拉监听 refreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { //此方法用于下拉做逻辑处理 @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { jsonlist.clear(); initDa(url); } //此方法用于上拉做逻辑处理 @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { int index = ima * 20; ima++; String url2 = "http://www.93.gov.cn/93app/data.do?channelId=0&startNum=" + index; Toast.makeText(getActivity(), url2 + "", Toast.LENGTH_SHORT).show(); initDa(url2); } });
阅读全文
0 0
- PullToRefreshListView跟banner的结合使用
- 使用addHeaderView给PulltoRefreshListView的添加Banner
- PullToRefreshListView和Banner相连使用
- TreeListVew+PullToRefreshListView结合使用
- Banner和OkHttp的结合使用
- 使用addHeaderView给PullToRefreshListView添加Banner
- PullToRefreshListView的添加Banner头布局
- Banner添加PullTorefreshListView头部
- banner加PullToRefreshListView
- PullToRefreshListView添加头部Banner
- PullToRefreshListView 的使用
- PullToRefreshListView的简单使用
- Android--PullToRefreshListView的使用
- PullToRefreshListView的使用
- PullToRefreshListView的使用
- PullToRefreshListView库的使用
- PullToRefreshListView的使用
- pullToRefreshListView的使用
- CODE[VS]3306 水果姐逛水果街3 树链剖分+线段树
- 漫谈CRM体系化建设4 – 如何服务客户
- delphi中GetEnumName和GetEnumValue
- leetcode Different Ways to Add Parentheses
- 上证50指数和沪深300指数
- PullToRefreshListView跟banner的结合使用
- <a>标签中href的几种用法
- 天天学Linux命令44--netstat命令
- 四种古典密码的C++实现(1)-----Hill密码
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- 用户表(查询数据 、添加数据 、排序 、点击删除 、修改密码 、批量删除 、全部删除)
- 如果有天,全世界的人都变成程序员......
- 属性动画图片从上移动到屏幕中间,放大图片的二倍再缩小到原来,自定义圆实现倒计时,解析数据显示,点击条目实现js交互
- Python 生成器原理详解