数据库存储

来源:互联网 发布:淘宝搬家到微店 编辑:程序博客网 时间:2024/05/16 17:48

Helper

public class Helper extends SQLiteOpenHelper{
    public Helper(Context context) {
        super(context, "mydata", null, 1);
    }


    @Override
    public void onCreate(SQLiteDatabase db) {
           db.execSQL("create table my(id integer primary key,json text not null,url text not null)");
    }


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


    }
}

---------------------------------------------------------------------------------------------------------------------------------------

Dao类

public class dao {
    private Helper h;
    private Context ct;


    public dao( Context ct) {
       h=new Helper(ct);
    }
    public void add(String json,String path){
        SQLiteDatabase sql = h.getWritableDatabase();
        sql.execSQL("insert into my(json,url)values(?,?)",new Object[]{json,path});


    }
    public String query(String url){
        SQLiteDatabase sql= h.getWritableDatabase();
        Cursor cu= sql.rawQuery("select *from my where url=?",new String[]{url});
        if(cu.moveToNext()){
            String j = cu.getString(1);
             return j;
        }


return null;
    }
}

-------------------------------------------------------------------------------------------------------------------------------------------------------------

在获取数据的Activity中调用dao方法

public class Fr2 extends Fragment {
    private ILoadingLayout startLabels;
    private Myadp adp;
    private View view;
    private LinearLayout line;


    private ViewPager vp;
    private int num = 1;


    Handler h = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            if (msg.what == 0) {
                vp.setCurrentItem(vp.getCurrentItem() + 1);
                h.sendEmptyMessageDelayed(0, 2000);
            }
        }
    };
    private List<ImageView> images;


    private Myadp2 adp3;
    private PullToRefreshScrollView scro;
    private ListView lv;
    private List<Bean.ResultsBean> ll;
    private dao d;




    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.fr2, container, false);
        line = (LinearLayout) view.findViewById(R.id.line);
        lv = (ListView) view.findViewById(R.id.xlist2);
        scro = (PullToRefreshScrollView) view.findViewById(R.id.scro);
        vp = (ViewPager) view.findViewById(vp2);
        return view;


    }


    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        d = new dao(getActivity());
        String path = "http://gank.io/api/data/Android/10/1";
        String s = d.query(path);
        if(s!=null){
            Gson g = new Gson();
            Bean b = g.fromJson(s, Bean.class);
            List<Bean.ResultsBean> ll = b.getResults();
            lv.setAdapter(new Myadp(ll,getActivity()));




        }else{
            getdata();




        }


        scro.setFocusable(false);
        ll = new ArrayList<Bean.ResultsBean>();
        String path1 = "http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=5&page=1";




        getdata();
        //2.设置刷新模式
        /*设置pullToRefreshListView的刷新模式,BOTH代表支持上拉和下拉,PULL_FROM_END代表上拉,PULL_FROM_START代表下拉 */
        scro.setMode(PullToRefreshBase.Mode.BOTH);




        //3.通过getLoadingLayoutProxy 方法来指定上拉和下拉时显示的状态的区别(也就是设置向下拉的时候头部里面显示的文字)
        //此时这里设置的是下拉刷新的时候显示的文字,所以第一个设置true表示现在是刷新,第二个设置为false
        startLabels = scro.getLoadingLayoutProxy(true, false);
        startLabels.setPullLabel("下拉刷新");
        startLabels.setRefreshingLabel("正在刷新...");
        startLabels.setReleaseLabel("放开刷新");




        ILoadingLayout endLabels = scro.getLoadingLayoutProxy(false, true);
        endLabels.setPullLabel("上拉刷新");
        endLabels.setRefreshingLabel("正在载入...");
        endLabels.setReleaseLabel("放开刷新...");
        scro.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ScrollView> refreshView) {
                      getfreshdata();
            }


            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ScrollView> refreshView) {
                      getdata();
            }
        });


        Utilgetdata.getdata(path1, getActivity(), new Myinterface() {
            @Override
            public void inter(String json) {
                Gson g = new Gson();
                Bean3 b = g.fromJson(json, Bean3.class);
                List<Bean3.DataBean> list = b.getData();


                vp.setAdapter(new pageadp(list, getActivity(), h));
                h.sendEmptyMessageDelayed(0, 2000);
                vp.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 < images.size(); i++) {
                            if (i == position % images.size()) {
                                images.get(i).setImageResource(R.drawable.shape1);
                            } else {
                                images.get(i).setImageResource(R.drawable.shape2);
                            }
                        }




                    }


                    @Override
                    public void onPageScrollStateChanged(int state) {


                    }
                });
                addpoint(list.size());


            }
        });
    }


    private void getfreshdata() {


        String path = "http://gank.io/api/data/Android/10/1";
        Utilgetdata.getdata(path, getActivity(), new Myinterface() {
            @Override
            public void inter(String json) {


                Gson g = new Gson();
                Bean b = g.fromJson(json, Bean.class);






                ll.clear();
                ll.addAll(0,b.getResults());
                setadapter();
                scro.onRefreshComplete();
                //可以设置刷新的时间....
                startLabels.setLastUpdatedLabel("上次更新时间:"+new SimpleDateFormat("HH:mm").format(new Date(System.currentTimeMillis())));//last最近的,最后一次update修改/更新






            }
        });






    }


    private void getdata() {
        num++;
        final String path = "http://gank.io/api/data/Android/10/"+num;
        Utilgetdata.getdata(path, getActivity(), new Myinterface() {
            @Override
            public void inter(String json) {
                d.add(json,path);
                Gson g = new Gson();
                Bean b = g.fromJson(json, Bean.class);


                ll.addAll(b.getResults());
                setadapter();
                scro.onRefreshComplete();






            }
        });




    }


    private void setadapter() {
        if (adp == null) {
            adp = new Myadp(ll, getActivity());
            lv.setAdapter(adp);




        } else {
            adp.notifyDataSetChanged();




        }
    }


    public void addpoint(int length) {
        images = new ArrayList<>();
        line.removeAllViews();
        for (int i = 0; i < length; i++) {
            ImageView image = new ImageView(getActivity());
            if (i == 0) {
                image.setImageResource(R.drawable.shape1);
            } else {
                image.setImageResource(R.drawable.shape2);
            }
            //添加到集合
            images.add(image);
            //设置原点边距
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
            params.setMargins(5, 0, 5, 0);
            line.addView(image, params);
        }
    }


}




原创粉丝点击