数据加载(有网络是请求网络数据 无网络时加载数据库数据)

//NetWork 进行网络判断

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class NetWork {
    public static boolean isNetWork(Context context){
        ConnectivityManager manager = (ConnectivityManager) context.getSystemService(context.CONNECTIVITY_SERVICE);
        NetworkInfo info = manager.getActiveNetworkInfo();
        if (info!=null){
            return true;
        }
        return false;
    }
}

//Fragment

import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;

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

import java.io.DataOutput;
import java.util.List;

@SuppressLint("ValidFragment"
class Afragment extends android.support.v4.app.Fragment {
  PullToRefreshListView pulllist;
    MMAdapter adapter;
    User user;
    Dao dao;

    @Nullable
    @Override
    public View onCreateView(@NonNull final LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = View.inflate(getActivity(), R.layout.afrag, null);

        pulllist=view.findViewById(R.id.pulllist);
        //创建dao层
        dao = new Dao(getActivity());
        //创建适配器
        adapter = new MMAdapter(getActivity());
        
        //进行网络判断
        boolean netWork = NetWork.isNetWork(getActivity());
        if (!netWork){    没有网络时
            Toast.makeText(getActivity(),"没有网络了",Toast.LENGTH_LONG).show();
            List<User.DataBean> query = dao.query();
            adapter.setData(query);
            pulllist.setAdapter(adapter);
        }else {
            //加载数据
            loadData();
            //设置适配器
            pulllist.setAdapter(adapter);
            
            return view;

    }

    private void loadData() {
        new AsyncTask<String,Void,List<User.DataBean>>(){
            @Override
            protected List<User.DataBean> doInBackground(String... strings) {
               //请求网络数据
                String string = HttpUrlUtils.requestData("http://www.xieast.com/api/news/news.php?type=top&page=1");
                 user = new Gson().fromJson(string, User.class);

                //添加到数据库
                for (int i=0;i<user.getData().size();i++){
                    dao.insert(user.getData().get(i).getTitle(),user.getData().get(i).getThumbnail_pic_s(),user.getData().get(i).getThumbnail_pic_s02(),user.getData().get(i).getThumbnail_pic_s03());
                }

                //查询
                dao.query();
                return user==null?null:user.getData();


            }

            @Override
            protected void onPostExecute(List<User.DataBean> data) {
                //进来就加载
                adapter.setData(user.getData());
                
                pulllist.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
                    @Override
                    public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                        new update().execute();
                    }

                    @Override
                    public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                        new update().execute();
                    }
                });
            }
        }.execute("http://www.xieast.com/api/news/news.php?type=top&page=1");
    }

    public class update extends AsyncTask<String,Void,List<User.DataBean>>{

        @Override
        protected List<User.DataBean> doInBackground(String... strings) {
            try {
                Thread.sleep(2000);   //刷新时间
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(List<User.DataBean> data) {
            //添加数据
            adapter.addData(user.getData());
            pulllist.onRefreshComplete();
        }
    }
}

Dao


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

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

class Dao {
    List<User.DataBean> datalist;
    SQLiteDatabase database;
    public Dao(Context context){
        Mhelpr mhelpr = new Mhelpr(context);
        database = mhelpr.getReadableDatabase();
    }

    //添加
    public void insert(String title, String thumbnail_pic_s,String thumbnail_pic_s02,String thumbnail_pic_s03) {
        ContentValues values = new ContentValues();
        values.put("title",title);
        values.put("thumbnail_pic_s",thumbnail_pic_s);
        values.put("thumbnail_pic_s02",thumbnail_pic_s02);
        values.put("thumbnail_pic_s03",thumbnail_pic_s03);

        database.insert("users",null,values);
    }


    public List<User.DataBean> query() {
        Cursor cursor = database.rawQuery("select * from users", null);
        datalist = new ArrayList<>();
        //创建集合
        while (cursor.moveToNext()){
            String title = cursor.getString(cursor.getColumnIndex("title"));
            String img1 = cursor.getString(cursor.getColumnIndex("thumbnail_pic_s"));
            String img2 = cursor.getString(cursor.getColumnIndex("thumbnail_pic_s02"));
            String img3 = cursor.getString(cursor.getColumnIndex("thumbnail_pic_s03"));


            User.DataBean dataBean = new User.DataBean(title,img1,img2,img3);

            datalist.add(dataBean);
            Log.e("1erq",dataBean.toString());

        }
          return datalist;
    }
}

Mhelper


import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.support.annotation.Nullable;

public class Mhelpr extends SQLiteOpenHelper {
    public Mhelpr(@Nullable Context context) {
        super(context, "users.db", null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
       db.execSQL("create table users(title text,thumbnail_pic_s text,thumbnail_pic_s02 text,thumbnail_pic_s03 text)");
    }

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

    }
}

猜你喜欢

转载自blog.csdn.net/KWON_QMY/article/details/83379255