PullToRefresh刷新的相关代码结合无限轮播

来源:互联网 发布:安庆网络问政平台新版 编辑:程序博客网 时间:2024/05/26 05:52
public class F11 extends Fragment {    private MyAdapter myAdapter;    private ViewPager vp;    private ListView lv;    private List<String> imageUrlList=new ArrayList<>();    private  List<ListBena.NewslistBean> newslist = new ArrayList<>();    private int page_num=1;    Handler handler=new Handler(){        @Override        public void handleMessage(Message msg) {            if(msg.what==0){            vp.setCurrentItem(vp.getCurrentItem()+1);           handler.sendEmptyMessageDelayed(0,2000);            }        }    };    private PullToRefreshScrollView scr;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.f11, container, false);        vp =(ViewPager)view.findViewById(R.id.vp11);        lv =(ListView)view.findViewById(R.id.list11);        scr=(PullToRefreshScrollView)view.findViewById(R.id.refresh_scroll_view);        LunBo();        getData();        return view;    }    @Override    public void onActivityCreated(@Nullable Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        scr.setMode(PullToRefreshBase.Mode.BOTH);        final ILoadingLayout startLabels = scr                .getLoadingLayoutProxy(true, false);        startLabels.setPullLabel("下拉刷新");        startLabels.setRefreshingLabel("正在拉");        startLabels.setReleaseLabel("放开刷新");        ILoadingLayout endLabels = scr.getLoadingLayoutProxy(                false, true);        endLabels.setPullLabel("上拉刷新");        endLabels.setRefreshingLabel("正在载入...");        endLabels.setReleaseLabel("放开刷新...");        scr.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() {            @Override            public void onPullDownToRefresh(PullToRefreshBase<ScrollView> refreshView) {                Pull();            }            @Override            public void onPullUpToRefresh(PullToRefreshBase<ScrollView> refreshView) {                page_num++;                getData();            }            private void Pull() {                NetData.getData("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page=1" + page_num, getActivity(), new JK() {                    @Override                    public void getjk(String json) {                        Gson gson=new Gson();                        ListBena listBena = gson.fromJson(json, ListBena.class);                        newslist.clear();                        newslist.addAll(0,listBena.getNewslist());                        scr.onRefreshComplete();                        setAdapter();                        //startLabels.setLastUpdatedLabel("上次更新时间:"+new SimpleDateFormat("HH:mm").format(new Date(System.currentTimeMillis())));/                        long l = System.currentTimeMillis();                        Date date=new Date(l);                        SimpleDateFormat format=new SimpleDateFormat("HH:mm");                        startLabels.setLastUpdatedLabel(format.format(date));                    }                });            }        });    }    private void getData() {        NetData.getData("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page=1"+page_num, getActivity(), new JK() {            @Override            public void getjk(String json) {                Gson gson=new Gson();                ListBena listBena = gson.fromJson(json, ListBena.class);                newslist.addAll(listBena.getNewslist());                setAdapter();                scr.onRefreshComplete();            }        });    }    public void setAdapter() {        if(myAdapter==null){            myAdapter = new MyAdapter(getActivity(), newslist);            lv.setAdapter(myAdapter);        }else {            myAdapter.notifyDataSetChanged();        }    }    private void LunBo() {        NetData.getData("http://v.juhe.cn/toutiao/index?type=shishang&key=61005cfc63a8075c88d5d408ba90aff9", getActivity(), new JK() {            @Override            public void getjk(String json) {                Gson gson=new Gson();                LunBena lunBena = gson.fromJson(json, LunBena.class);                List<LunBena.ResultBean.DataBean> data = lunBena.getResult().getData();                ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter(getActivity(), data);                vp.setAdapter(viewPagerAdapter);                vp.setCurrentItem(data.size()*100000);                handler.sendEmptyMessageDelayed(0,2000);            }        });    }}轮播图的适配器配置 
public class ViewPagerAdapter extends PagerAdapter{    Context txt;    List<LunBena.ResultBean.DataBean> data;    public ViewPagerAdapter(Context txt, List<LunBena.ResultBean.DataBean> data) {        this.txt = txt;        this.data = data;    }    @Override    public int getCount() {        return Integer.MAX_VALUE;    }    @Override    public boolean isViewFromObject(View view, Object object) {        return view==object;    }    @Override    public Object instantiateItem(ViewGroup container, int position) {        ImageView imageView=new ImageView(txt);        imageView.setScaleType(ImageView.ScaleType.FIT_XY);        ImageLoader.getInstance().displayImage(data.get(position%data.size()).getThumbnail_pic_s(),imageView,ImageLoaderUtil.getDefultOption());        container.addView(imageView);        return imageView;    }    @Override    public void destroyItem(ViewGroup container, int position, Object object) {       container.removeView((View)object);    }}
PullToRefreshScrollView包裹listView里面要修改ListView控件的方法
public class MyList extends ListView {    public MyList(Context context) {        super(context);    }    public MyList(Context context, AttributeSet attrs) {        super(context, attrs);    }    public MyList(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);    }    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);        super.onMeasure(widthMeasureSpec, expandSpec);    }}
<com.handmark.pulltorefresh.library.PullToRefreshScrollView    xmlns:ptr="http://schemas.android.com/apk/res-auto"    android:id="@+id/refresh_scroll_view"    android:layout_width="match_parent"    android:layout_height="match_parent"    ptr:ptrAnimationStyle="flip"    ptr:ptrDrawable="@drawable/default_ptr_flip"    ptr:ptrHeaderBackground="#383838"    ptr:ptrHeaderTextColor="#FFFFFF">  <LinearLayout      android:layout_width="match_parent"      android:layout_height="wrap_content"      android:orientation="vertical"      >    <android.support.v4.view.ViewPager       android:layout_width="match_parent"       android:layout_height="300dp"        android:id="@+id/vp11"       ></android.support.v4.view.ViewPager>     <com.example.liaxiti.Adapter.MyList          android:layout_width="match_parent"          android:layout_height="wrap_content"          android:id="@+id/list11"          ></com.example.liaxiti.Adapter.MyList>  </LinearLayout></com.handmark.pulltorefresh.library.PullToRefreshScrollView>


原创粉丝点击