package com.lbs.zuo_yue.chilfrags; import android.content.Context; import android.os.AsyncTask; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.google.gson.Gson; import com.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshListView; import com.lbs.zuo_yue.JavaBean.cf1_Bean; import com.lbs.zuo_yue.R; import com.lbs.zuo_yue.Utils.Net_cf1; import com.youth.banner.Banner; import com.youth.banner.loader.ImageLoader; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * author:Created by WangZhiQiang on 2017/11/16. */ public class cf1 extends Fragment { private View view; private PullToRefreshListView pull; private View banner_view; String baseUrl = "http://www.93.gov.cn/93app/data.do?channelId=0&startNum="; List<cf1_Bean.DataBean> list = new ArrayList<>(); private ListAdaper lista; private Banner banner; String[] urls = { "https://img-my.csdn.net/uploads/201407/26/1406383265_8550.jpg", "https://img-my.csdn.net/uploads/201407/26/1406383265_8550.jpg", "https://img-my.csdn.net/uploads/201407/26/1406383265_8550.jpg", "https://img-my.csdn.net/uploads/201407/26/1406383265_8550.jpg", "https://img-my.csdn.net/uploads/201407/26/1406383265_8550.jpg", "https://img-my.csdn.net/uploads/201407/26/1406383265_8550.jpg", }; private com.nostra13.universalimageloader.core.ImageLoader instance; int page = 0; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { //主布局PullToRefreshListView的布局 view = inflater.inflate(R.layout.cf1_view, container, false); //子布局Banner的布局 banner_view = View.inflate(getActivity(), R.layout.cf1_banner, null); //找到Banner控件的ID banner = banner_view.findViewById(R.id.cf1_ban); //获取ImageLoader设置图片 instance = com.nostra13.universalimageloader.core.ImageLoader.getInstance(); //找到PullToRefreshListView控件的ID pull = view.findViewById(R.id.cf1_pull); //设置允许可上下拉 pull.setMode(PullToRefreshBase.Mode.BOTH); //设置 Banner 的方法 自动滑动轮播 initBanner(); //获取listview ListView lv = pull.getRefreshableView(); //添加PullToRefreshListView布局头为Banner lv.addHeaderView(banner_view); //适配器 lista = new ListAdaper(); //添加listview的适配器 lv.setAdapter(lista); //调用解析网络数据的MyAsykter的类的方法 getintodata(baseUrl); //设置滑动监听 pull.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { //下拉 @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { //清空集合 list.clear(); //分页接口 初始为0 getintodata(baseUrl + 0); } //上啦 @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { //分页接口 page 初始为0 ++ 每次加一个 getintodata(baseUrl + page++); } }); return view; } //解析网络数据的MyAsykter的类的方法 private void getintodata(String baseUrl) { //实现类 一定要用 execute new MyAsykter().execute(baseUrl + 0); } /** * 设置banner */ private void initBanner() { //设置数据要显示的String数组 Arrays asList () 资源 banner.setImages(Arrays.asList(urls)); //底层是同过instance.displayImage((String) path, imageView); 来显示的 banner.setImageLoader(new ImageLoader() { @Override public void displayImage(Context context, Object path, ImageView imageView) { instance.displayImage((String) path, imageView); } }); //开始 显示 启动 banner.start(); } //MyAsykter 解析工具类 class MyAsykter extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... strings) { String s = Net_cf1.intojson(strings[0]); return s; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson g = new Gson(); cf1_Bean cf1_bean = g.fromJson(s, cf1_Bean.class); List<cf1_Bean.DataBean> data = cf1_bean.getData(); list.addAll(data); //刷新 lista.notifyDataSetChanged(); //PullToRefreshListView停止 上下拉的刷新 pull.onRefreshComplete(); } } //ListAdaper的 BaseAdapter适配器 class ListAdaper extends BaseAdapter { @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { viewhobler pull_vh = null; if (view == null) { pull_vh = new viewhobler(); view = View.inflate(getActivity(), R.layout.cf1_pvll_list, null); pull_vh.pull_tv1 = view.findViewById(R.id.cf1_pull_tv); view.setTag(pull_vh); } else { pull_vh = (viewhobler) view.getTag(); } pull_vh.pull_tv1.setText(list.get(i).getTITLE()); return view; } } class viewhobler { TextView pull_tv1; } } <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:orientation="vertical" android:layout_height="match_parent"> <com.handmark.pulltorefresh.library.PullToRefreshListView android:id="@+id/cf1_pull" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout> <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <com.youth.banner.Banner android:layout_width="wrap_content" android:layout_height="200dp" android:id="@+id/cf1_ban"/> </LinearLayout> //依赖去依赖里面找找吧
PullToRefreshListView的添加Banner头布局
最新推荐文章于 2018-07-27 21:35:53 发布