数据缓存 dao类操作

来源:互联网 发布:天刀淘宝代购是什么 编辑:程序博客网 时间:2024/06/16 13:01
package one.bw.com.yaowen;


import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.ScrollView;
import android.widget.TextView;


import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshScrollView;


import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;


import one.bw.com.yaowen.adapter.Mybase;
import one.bw.com.yaowen.adapter.Mypager;
import one.bw.com.yaowen.bean.Mybean;
import one.bw.com.yaowen.bean.News;
import one.bw.com.yaowen.dao.MyDao;
import one.bw.com.yaowen.util.JieKou;
import one.bw.com.yaowen.util.NetgetcountUtil;


public class MainActivity extends AppCompatActivity {


    int i=1;
    int j=0;
    private ListView lv;
    private ViewPager vp;
    private MyDao myDao;
    ArrayList<Mybean.NewslistBean> list = new ArrayList<>();
    private PullToRefreshScrollView refreshScroll;
    ArrayList<News> nlist = new ArrayList<>();
    Handler h=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            j++;
            vp.setCurrentItem(j);


            h.sendEmptyMessageDelayed(0,2000);
        }
    };
    String path="https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page=1";
    private TextView title;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lv = (ListView) findViewById(R.id.lv);
        vp = (ViewPager) findViewById(R.id.vp);
        title = (TextView) findViewById(R.id.title2);
        refreshScroll = (PullToRefreshScrollView) findViewById(R.id.refreshScroll);


        getViewpagerImage();


        vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {


            }


            @Override
            public void onPageSelected(int position) {
                title.setText(nlist.get(position%nlist.size()).getTitle());
            }


            @Override
            public void onPageScrollStateChanged(int state) {


            }
        });


        lv.setFocusable(false);
        SQLiteDatabase db = openOrCreateDatabase("wc.db", MODE_PRIVATE, null);
        myDao = new MyDao(db);
        boolean kai = myDao.getBoolean1();


        if(kai){
            String json = myDao.getJson1();
            Gson gson = new Gson();
            Mybean mybean = gson.fromJson(json, Mybean.class);
            List<Mybean.NewslistBean> newslist = mybean.getNewslist();
            list.clear();
            list.addAll(newslist);
            setAdapter();
            refreshScroll.onRefreshComplete();
            Date date = new Date(System.currentTimeMillis());
            SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");


            refreshScroll.setLastUpdatedLabel(sim.format(date));
        }else {
            getFristContent();
        }


        refreshScroll.setMode(PullToRefreshBase.Mode.BOTH);    //设置上下拉均允许


        refreshScroll.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ScrollView> refreshView) {
                getFristContent();
            }


            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ScrollView> refreshView) {
                i++;
                String path1="https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page="+i;
                NetgetcountUtil.getcount(path1, MainActivity.this, new JieKou() {
                    @Override
                    public void chuan(String json) {
                        if(!json.equals("")) {
                            myDao.deleteJson();
                            myDao.addJson(json, path);
                        }
                        Gson gson = new Gson();
                        Mybean mybean = gson.fromJson(json, Mybean.class);
                        List<Mybean.NewslistBean> newslist = mybean.getNewslist();


                        list.addAll(0,newslist);
                        setAdapter();
                        refreshScroll.onRefreshComplete();
                        Date date = new Date(System.currentTimeMillis());
                        SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");


                        refreshScroll.setLastUpdatedLabel(sim.format(date));
                    }
                });


            }
        });


        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Intent intent = new Intent(MainActivity.this, Main2Activity.class);
                intent.putExtra("url",list.get(i).getUrl());
                startActivity(intent);
            }
        });




    }


    private void getViewpagerImage() {
        NetgetcountUtil.getcount("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page=1", MainActivity.this, new JieKou() {
            @Override
            public void chuan(String json) {
                Gson gson = new Gson();
                Mybean mybean = gson.fromJson(json, Mybean.class);
                List<Mybean.NewslistBean> newslist = mybean.getNewslist();
                for (Mybean.NewslistBean n:newslist){
                    News news = new News(n.getPicUrl(), n.getTitle());
                    nlist.add(news);
                }
                Mypager mypager = new Mypager(nlist, MainActivity.this);
                vp.setAdapter(mypager);
                title.setText(nlist.get(0).getTitle());
                h.sendEmptyMessageDelayed(1000,2000);
            }
        });


    }




    private void getFristContent() {


        NetgetcountUtil.getcount(path, MainActivity.this, new JieKou() {
            @Override
            public void chuan(String json) {
                if(!json.equals("")) {
                    myDao.deleteJson();
                    myDao.addJson(json, path);
                }
                Gson gson = new Gson();
                Mybean mybean = gson.fromJson(json, Mybean.class);
                List<Mybean.NewslistBean> newslist = mybean.getNewslist();
                list.clear();
                list.addAll(newslist);
                setAdapter();
                refreshScroll.onRefreshComplete();
                Date date = new Date(System.currentTimeMillis());
                SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");


                refreshScroll.setLastUpdatedLabel(sim.format(date));
            }
        });
    }


    private void setAdapter() {
        Mybase mybase=null;
        if(mybase==null) {
            mybase=new Mybase(list, MainActivity.this);
            lv.setAdapter(mybase);
        }else{
            mybase.notifyDataSetChanged();
        }


    }

}


//dao类  数据库编写


package one.bw.com.yaowen.dao;


import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;


/**
 * Created by Administrator on 2017/10/20/020.
 */


public class MyDao  {
    SQLiteDatabase db;
    public MyDao(SQLiteDatabase db) {
        this.db=db;


        db.execSQL("create table if not exists jiekou(id Integer primary key,json text,url varchar(200))");
    }


    public boolean getBoolean(String path) {
        Cursor cursor = db.rawQuery("select *from jiekou where url='" + path + "'", null);
        boolean b = cursor.moveToNext();
        return b;
    }


    public String getJson(String path){
        Cursor cursor = db.rawQuery("select *from jiekou where url='" + path + "'", null);
        String ss="";
        while(cursor.moveToNext()){
            ss=cursor.getString(cursor.getColumnIndex("json"));
        }
        return ss;
    }


    public void addJson(String json, String s) {
        db.execSQL("insert into jiekou(json,url) values('"+json+"','"+s+"')");
    }






    public boolean getBoolean1() {
        Cursor cursor = db.rawQuery("select *from jiekou", null);
        boolean b = cursor.moveToNext();
        return b;
    }


    public String getJson1() {
        Cursor cursor = db.rawQuery("select *from jiekou", null);
        String ss="";
        while(cursor.moveToNext()){
            ss=cursor.getString(cursor.getColumnIndex("json"));
        }
        return ss;
    }


    public void deleteJson() {
        db.execSQL("delete from jiekou");
    }
}

原创粉丝点击