viewpager_frament_httpconnection_xlistview+双条目加载
来源:互联网 发布:php urldecode解码 编辑:程序博客网 时间:2024/05/29 15:26
package com.example.yuekao1;import android.os.AsyncTask;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.TextView;import com.google.gson.Gson;import com.nostra13.universalimageloader.core.ImageLoader;import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import java.util.ArrayList;import view.XListView;/** * author:Created by ZhouShuaiShuai on 2017-9-15. */public class F1 extends Fragment implements XListView.IXListViewListener { ViewPager pagers; LinearLayout ll; XListView xlist; Bean bean; Mypager mypaer; Mybase mybase; private static final int TYPE=0; private static final int TYPE1=1;ArrayList<Bean.DataBean.ComicsBean> list =new ArrayList<>(); int index; Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { index++; pagers.setCurrentItem(index); handler.sendEmptyMessageDelayed(0,2000); } }; Handler handler2 = new Handler(){ @Override public void handleMessage(Message msg) { } }; @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = View.inflate(getActivity(), R.layout.fram1, null); //初始化控件 pagers = view.findViewById(R.id.pagers); mypaer=new Mypager(); ll = view.findViewById(R.id.ll); mybase=new Mybase(); xlist = view.findViewById(R.id.xlist); xlist.setXListViewListener(this); xlist.setPullRefreshEnable(true); xlist.setPullLoadEnable(true); initcot(); getasyn(); getasyns(); pagers.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { for (int i = 0; i < ll.getChildCount(); i++) { ImageView img = (ImageView) ll.getChildAt(i); if (i == position % list.size()) { img.setImageResource(R.drawable.point_selected); } else { img.setImageResource(R.drawable.point_mormal); } } } @Override public void onPageScrollStateChanged(int state) { } }); handler.sendEmptyMessageDelayed(0, 2000); return view; } private void initcot() { for (int i = 0; i < list.size(); i++) { ImageView img = new ImageView(getActivity()); if (i == 0) { img.setImageResource(R.drawable.point_selected); } else { img.setImageResource(R.drawable.point_mormal); } LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(10, 10); params.setMargins(10, 5, 10, 5); ll.addView(img, params); } }private void getasyn(){ new AsyncTask<String, String, String>() { @Override protected String doInBackground(String... strings) { return getData(); } @Override protected void onPostExecute(String str) { Gson gson = new Gson(); bean = gson.fromJson(str, Bean.class); pagers.setAdapter(mypaer); super.onPostExecute(str); } }.execute();}private void getasyns(){ new AsyncTask<String, String, String>() { @Override protected String doInBackground(String... strings) { return getData(); } @Override protected void onPostExecute(String str) { Gson gson = new Gson(); bean = gson.fromJson(str, Bean.class); xlist.setAdapter(mybase); super.onPostExecute(str); }}.execute();} public String getData() { String str = ""; try { URL uri = new URL("http://api.kkmh.com/v1/daily/comic_lists/0?since=0&gender=0&sa_event=eyJwcm9qZWN0Ijoia3VhaWthbl9hcHAiLCJ0aW1lIjoxNDg3NzQyMjQwNjE1LCJwcm9wZXJ0aWVzIjp7IkhvbWVwYWdlVGFiTmFtZSI6IueDremXqCIsIlZDb21tdW5pdHlUYWJOYW1lIjoi54Ot6ZeoIiwiJG9zX3ZlcnNpb24iOiI0LjQuMiIsIkdlbmRlclR5cGUiOiLlpbPniYgiLCJGcm9tSG9tZXBhZ2VUYWJOYW1lIjoi54Ot6ZeoIiwiJGxpYl92ZXJzaW9uIjoiMS42LjEzIiwiJG5ldHdvcmtfdHlwZSI6IldJRkkiLCIkd2lmaSI6dHJ1ZSwiJG1hbnVmYWN0dXJlciI6ImJpZ25veCIsIkZyb21Ib21lcGFnZVVwZGF0ZURhdGUiOjAsIiRzY3JlZW5faGVpZ2h0IjoxMjgwLCJIb21lcGFnZVVwZGF0ZURhdGUiOjAsIlByb3BlcnR5RXZlbnQiOiJSZWFkSG9tZVBhZ2UiLCJGaW5kVGFiTmFtZSI6IuaOqOiNkCIsImFidGVzdF9ncm91cCI6MTEsIiRzY3JlZW5fd2lkdGgiOjcyMCwiJG9zIjoiQW5kcm9pZCIsIlRyaWdnZXJQYWdlIjoiSG9tZVBhZ2UiLCIkY2FycmllciI6IkNoaW5hIE1vYmlsZSIsIiRtb2RlbCI6IlZQaG9uZSIsIiRhcHBfdmVyc2lvbiI6IjMuNi4yIn0sInR5cGUiOiJ0cmFjayIsImRpc3RpbmN0X2lkIjoiQTo2YWRkYzdhZTQ1MjUwMzY1Iiwib3JpZ2luYWxfaWQiOiJBOjZhZGRjN2FlNDUyNTAzNjUiLCJldmVudCI6IlJlYWRIb21lUGFnZSJ9 "); HttpURLConnection conn = (HttpURLConnection) uri.openConnection(); int code = conn.getResponseCode(); if (code == 200) { InputStream stream = conn.getInputStream(); ByteArrayOutputStream arr = new ByteArrayOutputStream(); int lens = -1; byte by[] = new byte[1024]; while ((lens = stream.read(by)) != -1) { arr.write(by, 0, lens); } str = new String(arr.toByteArray(), "GBK"); } } catch (Exception e) { e.printStackTrace(); } return str; } //轮播图适配器 class Mypager extends PagerAdapter { @Override public Object instantiateItem(ViewGroup container, int position) { ImageView img = new ImageView(getActivity()); ImageLoader.getInstance().displayImage(bean.getData().getComics().get(position % bean.getData().getComics().size()).getCover_image_url(), img); container.addView(img); return img; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } @Override public int getCount() { if(bean.getData().getComics()!=null){ return Integer.MAX_VALUE; } return 0; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } }//xlistview class Mybase extends BaseAdapter{ @Override public int getCount() { return bean.getData().getComics().size(); } @Override public int getItemViewType(int position) { if (position%2==0){ return TYPE; }else{ return TYPE1; } } @Override public int getViewTypeCount() { return 2; } @Override public long getItemId(int i) { return i; } @Override public Object getItem(int i) { return bean.getData().getComics().get(i); } @Override public View getView(int i, View view, ViewGroup viewGroup) { int type=getItemViewType(i); switch (type){ case TYPE: Viewholder holder; if (view==null){ view = LayoutInflater.from(getActivity()).inflate(R.layout.xlist1,viewGroup,false); holder = new Viewholder(); holder.img=view.findViewById(R.id.img1); holder.t1=view.findViewById(R.id.t1); view.setTag(holder); }else{ holder = (Viewholder) view.getTag(); } holder.t1.setText(bean.getData().getComics().get(i).getTitle()); ImageLoader.getInstance().displayImage(bean.getData().getComics().get(i).getCover_image_url(),holder.img); break; case TYPE1: Viewholders holders; if (view==null){ view=LayoutInflater.from(getActivity()).inflate(R.layout.item2,viewGroup,false); holders=new Viewholders(); holders.t2=view.findViewById(R.id.t2); view.setTag(holders); }else{ holders = (Viewholders) view.getTag(); } holders.t2.setText(bean.getData().getComics().get(i).getLabel_text()); break; } return view; } class Viewholder{ ImageView img; TextView t1; } class Viewholders{ TextView t2; } } //加载 @Override public void onLoadMore() { handler.postDelayed(new Runnable() { @Override public void run() { bean.getData().getComics().addAll(bean.getData().getComics()); xlist.deferNotifyDataSetChanged(); xlist.stopLoadMore(); xlist.setRefreshTime("刚刚"); } },2000); } //刷新 @Override public void onRefresh() { handler.postDelayed(new Runnable() { @Override public void run() { bean.getData().getComics().addAll(bean.getData().getComics()); xlist.deferNotifyDataSetChanged(); xlist.stopRefresh(); xlist.setRefreshTime("刚刚"); } },2000); }}
阅读全文
0 0
- viewpager_frament_httpconnection_xlistview+双条目加载
- ListView多条目加载
- ListView 多条目加载
- RecycleView加载不同条目
- RecycleView加载不同条目
- listview多条目加载
- ListView多条目加载
- RecyclerView自定义条目加载
- listview多条目加载
- 多条目加载
- ListView多条目加载
- ListView多条目加载
- ListView多条目加载
- xlistview多条目加载
- XListView之多条目加载
- android多条目加载
- ListView多条目加载
- listview多条目加载
- NYG的背包 (贪心)
- asp.net mvc 之旅—— 第三站 路由模板中强大的自定义IRouteConstraint约束
- 极其强大的一些js插件
- Uri详解之——Uri结构与代码提取
- C++程序抛出异常后执行顺序
- viewpager_frament_httpconnection_xlistview+双条目加载
- python实现kubernetes生成Excel报表并且Email
- 约瑟夫问题(Josephus)链表实现
- 心累
- Android之Notification的多种用法
- mysql5.7.17解压版安装
- 负载均衡(Load Balancing)学习笔记一
- (十三)redis 复制(Replication)
- java jvm 内存调优几个设置的一些背景知识