PullToRefreshListView加载和Banner轮播

来源:互联网 发布:燕青对李逵知乎 编辑:程序博客网 时间:2024/06/07 17:16
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.bwei.monthsynthesize_demo.R;import com.bwei.monthsynthesize_demo.bean.PullData;import com.bwei.monthsynthesize_demo.utils.NetWorlUtil;import com.google.gson.Gson;import com.handmark.pulltorefresh.library.PullToRefreshBase;import com.handmark.pulltorefresh.library.PullToRefreshListView;import com.youth.banner.Banner;import com.youth.banner.loader.ImageLoader;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class ChildFrag1 extends Fragment {    private PullToRefreshListView pull;    private String urlstr = "http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0";    private String[] urls = {            "http://f2.kkmh.com/image/160715/42qtqpfsd.webp-w180",            "http://f2.kkmh.com/image/171114/Q4Cv0N6hO.webp-w640",            "http://f2.kkmh.com/image/160511/chrrrrs4v.webp-w640",            "http://f2.kkmh.com/image/171114/9c70n8gv4.webp-w640"    };    List<PullData.DataBean> list = new ArrayList<PullData.DataBean>();    private MyAdapter myAdapter;    private com.nostra13.universalimageloader.core.ImageLoader instance;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.childfrag1_layout, container, false);        return view;    }    @Override    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {        super.onViewCreated(view, savedInstanceState);        instance = com.nostra13.universalimageloader.core.ImageLoader.getInstance();        pull = view.findViewById(R.id.pull);        //设置pull支持上下拉加载        pull.setMode(PullToRefreshBase.Mode.BOTH);        View inflate = View.inflate(getActivity(), R.layout.banner_layout, null);        Banner banner1 = inflate.findViewById(R.id.banner);        //获取可复制视图        ListView listView = pull.getRefreshableView();        //banner设置加载图片工具        banner1.setImageLoader(new MyImageLoder());        //banner设置图片        banner1.setImages(Arrays.asList(urls));        //开启        banner1.start();        //添加到listView头部视图        listView.addHeaderView(inflate);        //设置适配器        myAdapter = new MyAdapter();        pull.setAdapter(myAdapter);        //获取数据        getInit();        //设置PullToRefreshListView刷新事件        pull.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {            @Override            public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {                list.clear();                getInit();            }            @Override            public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {                getInit();            }        });    }    //获取数据方法    private void getInit() {        new MyAsyncTask().execute(urlstr);    }    private class MyImageLoder extends ImageLoader {        @Override        public void displayImage(Context context, Object path, ImageView imageView) {            com.nostra13.universalimageloader.core.ImageLoader.getInstance().displayImage((String) path, imageView);        }    }    //适配器内部类    private class MyAdapter extends BaseAdapter {        @Override        public int getCount() {            return list.size();        }        @Override        public Object getItem(int i) {            return null;        }        @Override        public long getItemId(int i) {            return 0;        }        @Override        public View getView(int i, View view, ViewGroup viewGroup) {            Holder holder = null;            if (view == null) {                holder = new Holder();                view = View.inflate(getActivity(), R.layout.childfrag_item_layout, null);                holder.tv = view.findViewById(R.id.tv);                holder.iv = view.findViewById(R.id.iv);                view.setTag(holder);            } else {                holder = (Holder) view.getTag();            }            holder.tv.setText(list.get(i).getTITLE());            instance.displayImage(list.get(i).getIMAGEURL(), holder.iv,new NetWorlUtil().getDisk());            return view;        }    }    class Holder {        TextView tv;        ImageView iv;    }    private class MyAsyncTask extends AsyncTask<String, Void, String> {        @Override        protected String doInBackground(String... strings) {            return NetWorlUtil.getNetJson(strings[0]);        }        @Override        protected void onPostExecute(String s) {            super.onPostExecute(s);            Gson gson = new Gson();            PullData pullData = gson.fromJson(s, PullData.class);a            List<PullData.DataBean> data = pullData.getData();            list.addAll(data);            //刷新数据            myAdapter.notifyDataSetChanged();            pull.onRefreshComplete();        }    }}
原创粉丝点击