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>
阅读全文
0 0
- PullToRefresh刷新的相关代码结合无限轮播
- 无限轮播+pulltorefresh刷新
- 侧滑+PullToRefresh+无限轮播
- PullToRefresh+Banner无限轮播
- PullToRefresh下拉刷新、上拉加载更多ViewPage+Handler完成无限轮播
- PullToRefresh+TabLayout+DrawerLayout+无限轮播集成使用
- 侧拉+pullToRefresh+无限轮播+tabLayout+fragment
- pullToRefresh+网络监听+多条目+ViewPager无限轮播
- ViewPager的无限轮播
- 无限轮播的实现
- 图片的无限轮播
- Viewpager的无限轮播
- 无限轮播的实现
- 无限轮播的适配器
- viewpager的无限轮播
- 无限轮播的使用
- 图片的无限轮播
- Viewpager的无限轮播!!!
- 拼写错误
- Hololens官方教程精简版
- [Python]使用TuShare能获取到哪些信息?
- item02.xml
- 内存的战争
- PullToRefresh刷新的相关代码结合无限轮播
- Codeforces 276D. Little Girl and Maximum XOR(模拟)
- linux报"xxx is not in the sudoers file.This incident will be reported"错误
- python通过定制路径的方式解析接口返回数据
- 5.轨迹抽象,关键点序列生成
- 【bzoj4403】【序列统计】不降转升+组合数添项合并
- EL表达式截取字符串
- leetcode006-Search for a Range
- 51nod 1092 回文字符串 【巧用 dp】