Gson+pulltorefer+数据库+httpurlconnection+异步(更新)

java

package com.example.jacklee.myyuekaomoni.fragement;

import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.Toast;

import com.example.jacklee.myyuekaomoni.R;
import com.example.jacklee.myyuekaomoni.addapter.MyAdapter;
import com.example.jacklee.myyuekaomoni.addapter.MyPagerAdaper;
import com.example.jacklee.myyuekaomoni.bean.News;
import com.example.jacklee.myyuekaomoni.bean.NewsBean;
import com.example.jacklee.myyuekaomoni.bean.NwsShuJuku;
import com.example.jacklee.myyuekaomoni.db.NetUtis;
import com.example.jacklee.myyuekaomoni.db.ShowDao;
import com.example.jacklee.myyuekaomoni.httputis.HttpUrlConnection;
import com.example.jacklee.myyuekaomoni.httputis.HttpUrlConnection02;
import com.example.jacklee.myyuekaomoni.zidingyi.MyListView;
import com.example.jacklee.myyuekaomoni.zidingyi.MyViewPager;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshScrollView;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.utils.L;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;

public class Fragment_shouye extends Fragment {
    private HttpUrlConnection02 httpUrlConnection02= HttpUrlConnection02.getInstance();
    private HttpUrlConnection httpUrlConnection = HttpUrlConnection.getInstance();
    private MyViewPager MyView_pager;
    private String uuu="http://ttpc.dftoutiao.com/jsonpc/refresh?type=";
    private LinearLayout main_ll_points;
    private int page = 5010;
    private MyListView Mylist_view;
    private PullToRefreshScrollView pull_to_refresh;
    private String url = "http://www.xieast.com/api/banner.php";
    @SuppressLint("HandlerLeak")
    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if (msg.what==0){
                int i = MyView_pager.getCurrentItem();
                i++;
                MyView_pager.setCurrentItem(i);
                handler.sendEmptyMessageDelayed(0,1000);


            }
        }
    };
    private List<ImageView> list;
    private List<ImageView> list_lqs;
    private List<NewsBean.DataBean> list_dtm;
    private MyAdapter myAdapter;
    private ShowDao showDao;

    public Fragment_shouye() {
    }

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View inflate = inflater.inflate(R.layout.fragment_shouye, container, false);
        initView(inflate);
        return inflate;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        getViewPager();

        showDao = new ShowDao(getActivity());
        NwsShuJuku query = showDao.query(uuu + page);
        if (query!=null){
            getData01(query.json);

        }else{
            if (NetUtis.isNetConnect(getActivity())){
                getListDataFromNet();

            }
            else{
                //吐司


            }


        }

        pull_to_refresh.setMode(PullToRefreshBase.Mode.BOTH);
        pull_to_refresh.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ScrollView> refreshView) {
                page = 5010;
                getListDataFromNet();
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ScrollView> refreshView) {
                page++;
                getListDataFromNet();
            }
        });
        MyView_pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                position =   position% list.size();
                for (int i = 0; i <list_lqs.size() ; i++) {
                    if (i==position){
                        list_lqs.get(i).setSelected(true);

                    }else{

                        list_lqs.get(i).setSelected(false);
                    }

                }
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });

    }
    private void  getData02(String json){
        showDao.insert(new NwsShuJuku(uuu+page,json));
        getData01(json);

    }
    private void  getData01(String json){
        Gson gson = new Gson();
        String json01 = json.replace("null(", "").replace(")", "");
        NewsBean newsBean = gson.fromJson(json01, NewsBean.class);
        list_dtm = new ArrayList<>();

        List<NewsBean.DataBean> data = newsBean.getData();
        list_dtm.addAll(data);
        HashSet hashSet = new HashSet(list_dtm);
        list_dtm.clear();
        list_dtm.addAll(hashSet);
        myAdapter = new MyAdapter(list_dtm,getActivity());
        Mylist_view.setAdapter(myAdapter);
        myAdapter.notifyDataSetChanged();
        //关闭头布局和脚布局
        pull_to_refresh.onRefreshComplete();

    }


    private void  getlqs(String json){
        Gson gson = new Gson();
        News news = gson.fromJson(json, News.class);
        list = new ArrayList<>();
        list_lqs = new ArrayList<>();
        List<News.DataBean> data = news.getData();
        for (int i = 0; i <data.size() ; i++) {
            String url01 = data.get(i).getImg();
            ImageView imageView = new ImageView(getActivity());
            imageView.setScaleType(ImageView.ScaleType.FIT_XY);
            ImageLoader.getInstance().displayImage(url01,imageView);
            list.add(imageView);

            //添加小圆点
            ImageView pion = new ImageView(getActivity());
            pion.setImageResource(R.drawable.yuandian);
            LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(20, 20);
            layoutParams.rightMargin=10;
            layoutParams.leftMargin=10;
            list_lqs.add(pion);
            main_ll_points.addView(pion,layoutParams);


        }
        MyPagerAdaper myPagerAdaper = new MyPagerAdaper(list);
        MyView_pager.setAdapter(myPagerAdaper);
        MyView_pager.setCurrentItem(list.size()*1000);
        handler.sendEmptyMessageDelayed(0,1000);

    }
    private void getListDataFromNet() {
        httpUrlConnection02.getdata(page);
        httpUrlConnection02.setHttpListenter(new HttpUrlConnection02.HttpListenter() {
            @Override
            public void getJsonData(String json) {
                getData02(json);
            }
        });

    }

    private void getViewPager() {
        httpUrlConnection.getData(url);
        httpUrlConnection.setHttpListenter(new HttpUrlConnection.HttpListenter() {
            @Override
            public void getJsonData(String json) {
                getlqs(json);
            }
        });

    }

    private void initView(View inflate) {
        MyView_pager = (MyViewPager) inflate.findViewById(R.id.MyView_pager);
        main_ll_points = (LinearLayout) inflate.findViewById(R.id.main_ll_points);
        Mylist_view = (MyListView) inflate.findViewById(R.id.Mylist_view);
        pull_to_refresh = (PullToRefreshScrollView) inflate.findViewById(R.id.pull_to_refresh);
    }

    @Override
    public void onPause() {
        super.onPause();
        handler.removeCallbacksAndMessages(null);
    }
}

dao
package com.example.jacklee.myyuekaomoni.db;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import com.example.jacklee.myyuekaomoni.bean.News;
import com.example.jacklee.myyuekaomoni.bean.NwsShuJuku;


public class ShowDao {

    private final ShowHelper showHelper;
    private final SQLiteDatabase db;

    public ShowDao(Context context) {

        showHelper = new ShowHelper(context);
        db = showHelper.getWritableDatabase();
    }
    public void insert(NwsShuJuku bean){
        ContentValues values = new ContentValues();
        values.put("url", bean.url);
        values.put("json",bean.json);
        db.replace("bwei",null,values);
    }
    public NwsShuJuku query(String url){
        NwsShuJuku bean = null;
        Cursor cursor = db.rawQuery("select * from  bwei where url = ?", new String[]{url});
        if (cursor.moveToNext()){
            bean = new NwsShuJuku();

            bean.url = cursor.getString(cursor.getColumnIndex("url"));
            bean.json = cursor.getString(cursor.getColumnIndex("json"));
        }
        return bean;
    }
}

 

helper

package com.example.jacklee.myyuekaomoni.db;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

class ShowHelper extends SQLiteOpenHelper {
    public ShowHelper(Context context) {
        super(context,"bwei.db",null,1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table bwei(id Integer primary key autoincrement , url TEXT , json TEXT)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值