没网将网络数据存放数据库

package com.example.li.lichao.dao;

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

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

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(
                "create table users(id integer primary key autoincrement,title text , image text)");
    }

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

    }
}

package com.example.li.lichao;

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

import com.example.li.lichao.bean.NewsBean;
import com.example.li.lichao.dao.Dao;

import java.util.ArrayList;

public class Daos {

    private final SQLiteDatabase database;

    public Daos(Context context) {
        Dao dao = new Dao(context);
        database = dao.getReadableDatabase();
    }
    // 增
    public void add(String title, String image) {
        // insert into users(?,?) valus("wzq","20");
        database.execSQL("insert into users(title,image) values (?,?)", new Object[]{title,image});

    }

    //查
    public ArrayList<NewsBean.DataBean> query() {
        Cursor cursor = database.rawQuery("select * from users", null);

        StringBuilder stringBuilder = new StringBuilder();
        ArrayList<NewsBean.DataBean> list = new ArrayList<>();
        while (cursor.moveToNext()){
            String title = cursor.getString(cursor.getColumnIndex("title"));
            String image = cursor.getString(cursor.getColumnIndex("image"));
            NewsBean.DataBean dataBean = new NewsBean.DataBean(title,image);
            list.add(dataBean);
        }

        return list;

    }


}

package com.example.li.lichao.fragment;


import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.Toast;

import com.example.li.lichao.Daos;
import com.example.li.lichao.R;
import com.example.li.lichao.adapter.NewsAdapter;
import com.example.li.lichao.bean.NewsBean;
import com.example.li.lichao.httputil.HttpUtil;
import com.google.gson.Gson;

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

import me.maxwin.view.XListView;

/**
 * A simple {@link Fragment} subclass.
 */
public class Fragment1 extends Fragment {
    private int page = 1;
    private XListView mXListView;
    private NewsAdapter newsAdapter;
    private NewsBean newsBean;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View inflate = View.inflate(getActivity(), R.layout.fragment_fragment1, null);
        mXListView = inflate.findViewById(R.id.xlistview_footer_content);
        newsAdapter = new NewsAdapter(getActivity());


        mXListView.setPullRefreshEnable(true);
        mXListView.setPullLoadEnable(true);
        mXListView.setXListViewListener(new XListView.IXListViewListener() {
            @Override
            public void onRefresh() {
                new Thread(
                        new Runnable() {
                            @Override
                            public void run() {
                                page=1;
                                initdate(page);
                            }
                        }
                ).start();
            }

            @Override
            public void onLoadMore() {
                new Thread(
                        new Runnable() {
                            @Override
                            public void run() {
                                initdate(page);
                            }
                        }
                ).start();
            }
        });
        mXListView.setAdapter(newsAdapter);
        ConnectivityManager connectivityManager = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo info = connectivityManager.getActiveNetworkInfo();

        if(info != null ){
            //表示可以连接网络

        }else{
            Daos daos = new Daos(getActivity());
            ArrayList<NewsBean.DataBean> query = daos.query();
            newsAdapter.setdate(query);
            mXListView.setAdapter(newsAdapter);
        }

        return inflate;

    }
     Handler handler = new Handler(){
    @Override
    public void handleMessage(Message msg) {
        switch (msg.what){
            case 0:
                if (page == 1) {
                    newsAdapter.setdate((ArrayList<NewsBean.DataBean>) msg.obj);
                }else {
                    page=1;
                    newsAdapter.adddate((ArrayList<NewsBean.DataBean>) msg.obj);
                }
                page++;
                mXListView.stopRefresh();
                mXListView.stopLoadMore();
                break;
        }
    }
};
    private void initdate(int page) {
        String getdate = new HttpUtil().getdate(page);
        newsBean = new Gson().fromJson(getdate, NewsBean.class);
        ArrayList<NewsBean.DataBean> lists = (ArrayList<NewsBean.DataBean>)newsBean.getData();
        Daos daos = new Daos(getActivity());
        for (int i=0;i<lists.size();i++){
            daos.add(lists.get(i).getTitle(),lists.get(i).getThumbnail_pic_s());
        }
        handler.sendMessage(handler.obtainMessage(0, newsBean.getData()));
    }

}

猜你喜欢

转载自blog.csdn.net/weixin_41722852/article/details/83380769
今日推荐