第一步DBHelper
public class DBHelper extends SQLiteOpenHelper {
public DBHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL("create table news (id integer primary key autoincrement,data text)");
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
}
第二步DBUtils
public class DBUtils {
private SQLiteDatabase db;
public DBUtils(Context context){
DBHelper dbHelper = new DBHelper(context,"news,db",null,1);
db = dbHelper.getWritableDatabase();
}
public void insert(String data){
ContentValues values = new ContentValues();
values.put("data",data);
db.insert("news",null,values);
}
public String query(){
String data ="";
Cursor cursor = db.rawQuery("select data from news", null);
while (cursor.moveToNext()){
data = cursor.getString(cursor.getColumnIndex("data"));
}
return data;
}
}
第三步
package com.duwei.duwei20180921.fragment;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
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.duwei.duwei20180921.MainActivity;
import com.duwei.duwei20180921.R;
import com.duwei.duwei20180921.WebActivity;
import com.duwei.duwei20180921.adapter.MyTouTiaoAdapter;
import com.duwei.duwei20180921.bean.Bean;
import com.duwei.duwei20180921.db.DBUtils;
import com.duwei.duwei20180921.net.NetUtils;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import java.util.ArrayList;
import java.util.List;
/**
* A simple {@link Fragment} subclass.
*/
public class TouTiaoFragment extends Fragment {
private DBUtils dbUtils;
private SharedPreferences sharedPreferences;
private PullToRefreshListView pull_list;
private String url = "http://www.xieast.com/api/news/news.php?type=top&page=";
private int page = 1;
private NetUtils netUtils = new NetUtils();
private List<Bean.DataBean> list = new ArrayList<>();
private MyTouTiaoAdapter adapter;
public TouTiaoFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_tou_tiao, container, false);
pull_list =view.findViewById(R.id.pull_list);
dbUtils = new DBUtils(getActivity());
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
pull_list.setMode(PullToRefreshBase.Mode.BOTH);
pull_list.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
ConnectivityManager connectivityManager = (ConnectivityManager) getActivity().getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = connectivityManager.getActiveNetworkInfo();
if (info!= null && info.isAvailable()) {
page = 1;
doHttp();
}else{
Toast.makeText(getActivity(),"无网络",Toast.LENGTH_LONG).show();
pull_list.onRefreshComplete();
}
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
ConnectivityManager connectivityManager = (ConnectivityManager) getActivity().getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = connectivityManager.getActiveNetworkInfo();
if (info!= null && info.isAvailable()) {
page++;
doHttp();
}else{
Toast.makeText(getActivity(),"无网络",Toast.LENGTH_LONG).show();
pull_list.onRefreshComplete();
}
}
});
adapter = new MyTouTiaoAdapter(list,getActivity());
pull_list.setAdapter(adapter);
pull_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent = new Intent(getActivity(),WebActivity.class);
intent.putExtra("url",list.get(i).getUrl());
startActivity(intent);
}
});
//判断是否联网
doHttp();
}
private void doHttp() {
ConnectivityManager connectivityManager = (ConnectivityManager) getActivity().getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = connectivityManager.getActiveNetworkInfo();
if (info!= null && info.isAvailable()) {
Toast.makeText(getActivity(),"有网",Toast.LENGTH_SHORT).show();
//调用网络工具类
netUtils.getDataFromServer(url+page);
netUtils.setNetCallBack(new NetUtils.NetCallBack() {
@Override
public void onSuccess(String result) {
/*sharedPreferences = getActivity().getSharedPreferences("info", Context.MODE_PRIVATE);
sharedPreferences.edit().putString("data",result).commit();*/
dbUtils.insert(result);
Gson gson = new Gson();
Bean bean = gson.fromJson(result, Bean.class);
if (page ==1){
list.clear();
}
list.addAll(bean.getData());
adapter.notifyDataSetChanged();
pull_list.onRefreshComplete();
}
});
}else{
/*String data = getActivity().getSharedPreferences("info", Context.MODE_PRIVATE).getString("data", "");*/
String data = dbUtils.query();
Gson gson = new Gson();
Bean bean = gson.fromJson(data, Bean.class);
if (page ==1){
list.clear();
}
list.addAll(bean.getData());
adapter.notifyDataSetChanged();
pull_list.onRefreshComplete();
}
}
}