xlistview...

来源:互联网 发布:淘宝如何卡密自动发货 编辑:程序博客网 时间:2024/06/05 03:05
public class Frag1 extends Fragment implements XListView.IXListViewListener{    private View view;    private ArrayList<ImageView> listIVV=new ArrayList<>();//圆点集合    int[] imgg={R.drawable.img1,R.drawable.img2,R.drawable.img3};//轮播图片数组    private LinearLayout ll_frag1;    private ViewPager vp_frag1;    private XListView xlv_frag1;    private int count=10;//一次加载10条数据    String url="http://japi.juhe.cn/comic/book?key=3206e5516cba295eb14cb65b25a52b57";    ArrayList<Bean> list=new ArrayList<>();    XlvAdapter xa;    MyDao dao;    //handler倒计时跳转    Handler handler=new Handler()    {        @Override        public void handleMessage(Message msg)        {            int postion=vp_frag1.getCurrentItem();            postion++;            vp_frag1.setCurrentItem(postion);            handler.sendEmptyMessageDelayed(0,3000);        }    };    private JingTai jt;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        view = View.inflate(getActivity(), R.layout.frag1,null);        init();        initDate();        inid();        //注册(广播判断网络)        jt = new JingTai();        IntentFilter filter=new IntentFilter();        filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);        getActivity().registerReceiver(jt,filter);        return view;    }    /**     * 调用请求数据的方法     */    private void inid()    {        Frag1Api1 fa1=new Frag1Api1();        fa1.execute(url);    }    /**     * 初始化控件     */    private void init()    {        dao=new MyDao(getContext());        vp_frag1 = view.findViewById(R.id.vp_frag1);//viewpager(轮播)        xlv_frag1=view.findViewById(R.id.xlv_frag1);//xlistview(展示数据)        ll_frag1 = view.findViewById(R.id.ll_frag1);//LinearLayout(圆点)        xlv_frag1.setPullLoadEnable(true);//xlistview可用        xlv_frag1.setXListViewListener(this);//类实现接口,必须给接口赋值才能使用!        //自动轮播(无限)的适配器(图片)        VpAdapter va=new VpAdapter(getContext());        vp_frag1.setAdapter(va);        vp_frag1.setCurrentItem(100000);//默认值        vp_frag1.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {            @Override            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels)            {            }            @Override            public void onPageSelected(int position)            {                //自动轮播                for (int i = 0; i < listIVV.size(); i++)                {                    if(i == position%3)                    {                        listIVV.get(i).setImageResource(R.drawable.dot_red);                    }                    else                    {                        listIVV.get(i).setImageResource(R.drawable.dot_green);                    }                }            }            @Override            public void onPageScrollStateChanged(int state) {            }        });        //倒计时        handler.sendEmptyMessageDelayed(0,3000);    }    /**     * 添加圆点     */    public void initDate()    {        for (int i = 0; i < imgg.length; i++)        {            ImageView iv_frag1=new ImageView(getContext());            if(i == 0)            {                iv_frag1.setImageResource(R.drawable.dot_red);            }            else            {                iv_frag1.setImageResource(R.drawable.dot_green);            }            LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(20,20);            lp.setMargins(5,0,5,10);            ll_frag1.addView(iv_frag1,lp);            listIVV.add(iv_frag1);        }    }    class Frag1Api1 extends AsyncTask<String,Integer,String>    {        //请求        @Override        protected String doInBackground(String... strings) {            StringBuffer sb=new StringBuffer();            try {                URL url=new URL(strings[0]);                HttpURLConnection huc= (HttpURLConnection) url.openConnection();                if(200 == huc.getResponseCode())                {                    InputStream is=huc.getInputStream();                    BufferedReader br=new BufferedReader(new InputStreamReader(is));                    String line=null;                    while((line = br.readLine()) != null)                    {                        sb.append(line);                    }                }            } catch (Exception e) {                e.printStackTrace();            }            return sb.toString();        }        /**         * 解析         * @param s         */        @Override        protected void onPostExecute(String s) {            super.onPostExecute(s);            try {                JSONObject obj=new JSONObject(s);                JSONObject resultO=obj.getJSONObject("result");                JSONArray bookA=resultO.getJSONArray("bookList");                if(bookA != null && bookA.length() > 0)                {                    for (int i = 0; i < bookA.length(); i++)                    {                        JSONObject obj_b= (JSONObject) bookA.get(i);                        Bean b=new Bean();                        b.name=obj_b.optString("name");                        b.area=obj_b.optString("area");                        b.coverImg=obj_b.optString("coverImg");                        list.add(b);                        System.out.println(list);                        //存数据库                        dao.insert(b.name,b.area,b.coverImg);                        System.out.println("====数据库=="+b.name+b.coverImg);                    }                }            } catch (JSONException e) {                e.printStackTrace();            }            if(list != null)            {                if(xa == null)                {                    //添加适配器                    xa=new XlvAdapter(getActivity(),list);                    xlv_frag1.setAdapter(xa);                }                else                {                    //适配器刷新                    xa.notifyDataSetChanged();                }                xlv_frag1.stopRefresh();//停止刷新                xlv_frag1.stopLoadMore();//停止加载更多            }        }    }    /**     * 上拉刷新     */    @Override    public void onRefresh()    {        //如果存放数据的集合不为空        if(list != null)        {            //清空集合            list.clear();            //调用异步请求数据            Frag1Api1 fa1=new Frag1Api1();            fa1.execute(url);        }    }    /**     * 下拉加载     */    @Override    public void onLoadMore()    {        //拼接的接口        String urll=url+"&skip="+count;        count+=10;//(自定义,初始值10)一次加载10条数据        //调用异步请求数据        Frag1Api1 fa1=new Frag1Api1();        fa1.execute(urll);//新的url    }    /**     * 接收   判断网络     */    class JingTai extends BroadcastReceiver    {        @Override        public void onReceive(Context context, Intent intent)        {            String str=intent.getAction();            if(str.equals(ConnectivityManager.CONNECTIVITY_ACTION))            {                ConnectivityManager cm= (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);                NetworkInfo info=cm.getActiveNetworkInfo();                if(info != null && info.isAvailable())                {                    // name="WiFi网络"                    String name=info.getTypeName();                    if(info.getType() == ConnectivityManager.TYPE_WIFI)                    {                        //WIFI网络                        Toast.makeText(context, "WiFi网络", Toast.LENGTH_SHORT).show();                    }                    else if(info.getType() == ConnectivityManager.TYPE_ETHERNET)                    {                        //有线网络                        Toast.makeText(context, "有线网络", Toast.LENGTH_SHORT).show();                    }                }                else                {                    Toast.makeText(context, "没网", Toast.LENGTH_SHORT).show();                    //没网,调用数据库                    list = dao.select();                }            }        }    }    @Override    public void onDestroy() {        super.onDestroy();        if(jt!=null)        {            getActivity().unregisterReceiver(jt);        }    }}
原创粉丝点击