我们在做数据库缓存的时候,要判断网络状态,有网的时候加载,没网的时候图片显示默认的
package com.bawei.yuekao2.frag;
import android.content.ContentValues;
import android.database.Cursor;
import android.os.AsyncTask;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.widget.ListView;
import com.bawei.yuekao2.R;
import com.bawei.yuekao2.adapter.Myadapter;
import com.bawei.yuekao2.base.BaseFragment;
import com.bawei.yuekao2.bean.JsonBean;
import com.bawei.yuekao2.dao.Dao;
import com.bawei.yuekao2.utils.NetWorkUtils;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
public class Frag_02 extends BaseFragment {
private ArrayList list=null;
private Handler handler = new Handler();
private int page = 1;
private PullToRefreshListView pul;
private Dao dao;
@Override
protected int layoutResID() {
return R.layout.frag_02;
}
@Override
protected void initView(View view) {
pul = view.findViewById(R.id.pul);
}
@Override
protected void initData() {
dao = new Dao(getActivity());
boolean netWork = NetWorkUtils.isNetWork(getActivity());
if (netWork) {
pul.setMode(PullToRefreshBase.Mode.BOTH);
pul.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
page = 1;
getNetData();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
pul.onRefreshComplete();
}
}, 2000);
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
page++;
getNetData();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
pul.onRefreshComplete();
}
}, 2000);
}
});
getNetData();
}
else {
Cursor query = dao.query("person", null, null, null, null, null, null);
ArrayList<JsonBean> step = new ArrayList<>();
if (query.moveToFirst()){
do {
String title = query.getString(query.getColumnIndex("title"));
String img = query.getString(query.getColumnIndex("img"));
JsonBean jsonBean = new JsonBean(title,img);
step.add(jsonBean);
}
while (query.moveToNext());
}
query.close();
Myadapter myadapter = new Myadapter(getActivity(), step);
pul.setAdapter(myadapter);
}
}
private void getNetData() {
new MyAsyncTask().execute();
}
private class MyAsyncTask extends AsyncTask<String,Void,String>{
private JSONObject jsonData;
@Override
protected String doInBackground(String... strings) {
String path = "http://mnews.gw.com.cn/wap/data/news/xbsjxw/page_1.json";
try {
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setReadTimeout(5000);
connection.setConnectTimeout(5000);
int code = connection.getResponseCode();
Log.i("codeqqqqq",code+"");
if (code==200){
InputStream stream = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
StringBuilder builder = new StringBuilder();
String str = "";
while ((str=reader.readLine())!=null){
builder.append(str);
}
return builder.toString();
}
} catch (Exception e) {
Log.i("xxx",e.toString());
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
ArrayList<JsonBean> jsonBeans = new ArrayList<>();
//原生解析
try {
JSONArray jsonArray = new JSONArray(s);
JSONObject jsonObject = jsonArray.getJSONObject(0);
JSONArray data = jsonObject.getJSONArray("data");
for (int i=0;i<data.length();i++){
jsonData = data.getJSONObject(i);
;
String title = jsonData.getString("title");
String img = jsonData.getString("img");
jsonBeans.add(new JsonBean(title,img));
}
if (page==1){
//有网
dao.delete("person",null,null);
list=new ArrayList<>();
for (int i=0;i<jsonBeans.size();i++){
String title = jsonBeans.get(i).getTitle();
String img = jsonBeans.get(i).getImg();
ContentValues values = new ContentValues();
values.put("title",title);
values.put("img",img);
dao.add("person",null,values);
}
}
list.addAll(jsonBeans);
Myadapter myadapter = new Myadapter(getActivity(), list);
pul.setAdapter(myadapter);
pul.setSelection(list.size()-(jsonBeans.size()-1));
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}