package com.bawei.wangyifei20190114.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.wangyifei20190114.R;
import com.bawei.wangyifei20190114.adapter.MyPulladapter;
import com.bawei.wangyifei20190114.base.BaseFragment;
import com.bawei.wangyifei20190114.bean.JsonBean;
import com.bawei.wangyifei20190114.bean.Step;
import com.bawei.wangyifei20190114.dao.Dao;
import com.bawei.wangyifei20190114.utils.NetWorkUtils;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
public class Fragment1 extends BaseFragment {
//定义一个handler
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.fragment1;
}
@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(PullToRefreshListView.Mode.BOTH);
pul.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
page = 1;
getNetData();
handler.postDelayed(new Runnable() {
@Override
public void run() {
pul.onRefreshComplete();
}
}, 2000);
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
page++;
getNetData();
handler.postDelayed(new Runnable() {
@Override
public void run() {
pul.onRefreshComplete();
}
}, 2000);
}
});
getNetData();
}
else{
//全查
Cursor query = dao.query("person", null, null, null, null, null, null);
//定义一个集合 泛型和最小的bean类相同
ArrayList<Step> steps = new ArrayList<>();
if (query.moveToFirst()){
do {
String newsId = query.getString(query.getColumnIndex("news_id"));
String news_summary = query.getString(query.getColumnIndex("news_summary"));
String news_title = query.getString(query.getColumnIndex("news_title"));
String pic_url = query.getString(query.getColumnIndex("pic_url"));
Step step = new Step(newsId,news_summary,news_title,pic_url);
steps.add(step);
}
while (query.moveToNext());
}
query.close();
//调用适配器
MyPulladapter pulladapter = new MyPulladapter(getContext(), steps);
pul.setAdapter(pulladapter);
}
}
private void getNetData() {
new MyAsyncTask().execute();
}
//异步请求
private class MyAsyncTask extends AsyncTask<String,Void,String>{
@Override
protected String doInBackground(String... strings) {
//接口
String path ="http://api.expoon.com/AppNews/getNewsList/type/1/p/"+page;
try {
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
//设置请求方法
connection.setRequestMethod("GET");
connection.setReadTimeout(5000);
connection.setConnectTimeout(5000);
if (connection.getResponseCode()==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) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
//解析json
Gson gson = new Gson();
JsonBean jsonBean = gson.fromJson(s, JsonBean.class);
ArrayList<Step> data = jsonBean.getData();
//分页加载
if (page==1){
//网络判断 有网的
//全删
dao.delete("person",null,null);
list=new ArrayList<>();
for (int i =0;i<data.size();i++){
//取数据
String news_id = data.get(i).getNews_id();
String news_summary = data.get(i).getNews_summary();
String news_title = data.get(i).getNews_title();
String pic_url = data.get(i).getPic_url();
//实力化contentvalues
ContentValues values = new ContentValues();
//存进去
values.put("news_id",news_id);
values.put("news_summary",news_summary);
values.put("news_title",news_title);
values.put("pic_url",pic_url);
dao.add("person",null,values);
}
}
list.addAll(data);
//适配器
MyPulladapter myPulladapter = new MyPulladapter(getActivity(), list);
pul.setAdapter(myPulladapter);
//显示刷新后的上一页
pul.setSelection(list.size()-(data.size()-1));
}
}
}