//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) {
}
}