数据库缓存简单使用

来源:互联网 发布:阿里云免费ecs 编辑:程序博客网 时间:2024/06/05 18:43

建数据库


public class sqlite extends SQLiteOpenHelper{

    public sqlite(Context context) {
        super(context, "user", null, 2);
    }


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


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


    }

}



操作数据

public class dao {


    private final com.appc.zonghe.sqlite sqlite;
    private final SQLiteDatabase db;


    public dao(Context context){
        sqlite = new sqlite(context);
        db = sqlite.getWritableDatabase();
    }
    public void insertData(String url,String jsonStr){
        db.delete("user","url=?",new String[]{jsonStr});
        db.execSQL("insert into user (url,json) values (?,?)",new Object[]{url,jsonStr});
    }
    public String getJson(String url){
        Cursor rawQuery = db.rawQuery("select json from user where url=?",new String[]{url});
        //将值存到当前的容器
        StringBuffer stringBuffer = new StringBuffer();
        //rawQuery.moveToNext()  游标向下
        while (rawQuery.moveToNext()) {
            String pass = rawQuery.getString(rawQuery.getColumnIndex("json"));
            stringBuffer.append(pass);
        }
        return stringBuffer.toString();


    }
}



activity


package com.appc.zonghe;


import android.content.Context;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;


import com.bwie.pulllibrary.utils.NetTypeUtil;
import com.bwie.pulllibrary.utils.NetWordUtils;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshScrollView;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.youth.banner.Banner;


import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;


import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;


public class fragment1 extends Fragment {
    private String[] images={"http://pic8.nipic.com/20100701/5290458_114840036316_2.jpg",//海
            "http://pic2.nipic.com/20090424/1468853_230119053_2.jpg",//亭子
            "http://img3.3lian.com/2013/s1/20/d/57.jpg",//白房子
            "http://pic39.nipic.com/20140226/18071023_164300608000_2.jpg",//华
            "http://a0.att.hudong.com/15/08/300218769736132194086202411_950.jpg"};
    String url="http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0";
    private List<com.appc.zonghe.bean3.DataBean> list=new ArrayList<>();
    private PullToRefreshScrollView plv;
    private GridView gv;
    private int gg=2;
    private DisplayImageOptions options;
    private String n;
    private com.appc.zonghe.dao dao;
    private Handler h=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            String ss = (String) msg.obj;


            dao.insertData(url,ss);
        }
    };




    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.fragment_fragment1, container, false);
        plv = view.findViewById(R.id.plv);
        gv = view.findViewById(R.id.gv);
        Banner banner = view.findViewById(R.id.ba);
        banner.setImageLoader(new dd());
        //设置图片集合
        banner.setImages(Arrays.asList(images));
        //banner设置方法全部调用完毕时最后调用
        banner.start();
        dao = new dao(getActivity());
        n = dao.getJson(url);
        Log.e("xxx", "1");
        Log.e("xxx", n+"");
        if("".equals(n)){
            if(NetTypeUtil.getNetype(getActivity())==-1){
                Toast.makeText(getActivity(),"勿忘",Toast.LENGTH_SHORT).show();
            }else{
                intodata(url);
            }
        }else{
            Toast.makeText(getActivity(),n,Toast.LENGTH_SHORT).show();
            Gson gson=new Gson();
            bean3 bean = gson.fromJson(n, bean3.class);
            List<com.appc.zonghe.bean3.DataBean> data = bean.getData();
            list.addAll(data);
            gv.setAdapter(new Adapter());
        }


        plv.setMode(PullToRefreshBase.Mode.BOTH);
        plv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) {
                if(NetTypeUtil.getNetype(getActivity())==-1){
                    Toast.makeText(getActivity(),"勿忘",Toast.LENGTH_SHORT).show();
                    plv.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            plv.onRefreshComplete();
                        }
                    },500);
                }else{
                    plv.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            list.clear();
                            gg=2;
                            intodata(url);
                            plv.onRefreshComplete();
                        }
                    },500);
                }


            }


            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) {
                if(NetTypeUtil.getNetype(getActivity())==-1){
                    Toast.makeText(getActivity(),"勿忘",Toast.LENGTH_SHORT).show();
                    plv.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            plv.onRefreshComplete();
                        }
                    },500);
                }else{
                    plv.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            gg++;
                            String ss="http://www.93.gov.cn/93app/data.do?channelId=0&startNum="+gg;
                            intodata(ss);
                            plv.onRefreshComplete();
                        }
                    },500);
                }


            }
        });
        return view;


    }


    private void intodata(String s) {
        new Acy().execute(s);
    }
    //异步请求
    class Acy extends AsyncTask<String,Void,String> {


        @Override
        protected String doInBackground(String... params) {
            String param = params[0];
            String netjson = NetWordUtils.getNetjson(param);
            Message m=new Message();
            m.obj=netjson;
            h.sendMessage(m);
            Log.e("xxx", netjson+"");
            return netjson;
        }
        @Override
        protected void onPostExecute(String s) {
            Gson gson=new Gson();
            bean3 bean = gson.fromJson(s, bean3.class);
            List<com.appc.zonghe.bean3.DataBean> data = bean.getData();
            list.addAll(data);
            gv.setAdapter(new Adapter());
        }
    }
    class Adapter extends BaseAdapter {
        @Override
        public int getCount() {
            return list.size();
        }
        @Override
        public Object getItem(int position) {
            return list.get(position);
        }
        @Override
        public long getItemId(int position) {
            return position;
        }


        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            convertView=View.inflate(getActivity(),R.layout.item1,null);
            TextView tv2 = convertView.findViewById(R.id.tv2);
            ImageView im2 = convertView.findViewById(R.id.im2);
            tv2.setText(list.get(position).getTITLE());
            ImageLoader.getInstance().displayImage((String) list.get(position).getIMAGEURL(),im2,options);
            return convertView;
        }
    }


}



原创粉丝点击