1.创建数据库
public class MHelp extends SQLiteOpenHelper {
//创建数据库
public MHelp(Context context) {
super(context, "jh.db", null, 1);
}
//创建数据表
@Override
public void onCreate(SQLiteDatabase db) {
//db.execSQL("create table jh_user (id Integer primary key autoincrement , date text,thumbnail_pic_s text,thumbnail_pic_s02 text,thumbnail_pic_s03 text ,title text)");
db.execSQL("create table jh_user (id Integer primary key autoincrement , author_name text , date text,thumbnail_pic_s text,thumbnail_pic_s02 text,thumbnail_pic_s03 text ,title text)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
2.创建Dao
public class UserDao{
private final SQLiteDatabase database;
public UserDao(Context context) {
//创建数据库
MHelp mHelp = new MHelp(context);
database = mHelp.getReadableDatabase();
}
//添加
public void insert(String author_name, String date, String thumbnail_pic_s, String thumbnail_pic_s02, String thumbnail_pic_s03, String title) {
database.execSQL("insert into jh_user (author_name,date,thumbnail_pic_s,thumbnail_pic_s02,thumbnail_pic_s03, title) values(?,?,?,?,?,?)",new Object[]{author_name,date,thumbnail_pic_s,thumbnail_pic_s02,thumbnail_pic_s03,title});
}
//查询
public List<ResponBean.DataItem> query() {
Cursor cursor = database.rawQuery("select * from jh_user", null);
List<ResponBean.DataItem> list = new ArrayList<>();
while (cursor.moveToNext()){
String author_name = cursor.getString(cursor.getColumnIndex("author_name"));
String date = cursor.getString(cursor.getColumnIndex("date"));
String thumbnail_pic_s = cursor.getString(cursor.getColumnIndex("thumbnail_pic_s"));
String thumbnail_pic_s02 = cursor.getString(cursor.getColumnIndex("thumbnail_pic_s02"));
String thumbnail_pic_s03 = cursor.getString(cursor.getColumnIndex("thumbnail_pic_s03"));
String title = cursor.getString(cursor.getColumnIndex("title"));
ResponBean.DataItem dataItem = new ResponBean.DataItem(author_name, date, thumbnail_pic_s, thumbnail_pic_s02, thumbnail_pic_s03, title);
list.add(dataItem);
}
return list;
}
}
//这是一个接口中的方法
@Override
public void doString(List<ResponBean.DataItem> dataItems) {
if(dataItems == null){
Toast.makeText(getActivity(), “数据请求错误”, Toast.LENGTH_SHORT).show();
return;
}
updateData(dataItems);
loadComplete();
//向数据库添加数据
for(int i=0 ; i<dataItems.size();i++){
String author_name = dataItems.get(i).getAuthor_name();
String date = dataItems.get(i).getDate();
String thumbnail_pic_s = dataItems.get(i).getThumbnail_pic_s();
String thumbnail_pic_s02 = dataItems.get(i).getThumbnail_pic_s02();
String thumbnail_pic_s03 = dataItems.get(i).getThumbnail_pic_s03();
String title = dataItems.get(i).getTitle();
dao.insert(author_name,date,thumbnail_pic_s,thumbnail_pic_s02,thumbnail_pic_s03,title);
}
}
3.查询数据库并展示
//判断是否有网络,一般写在程序的开头
if(!NetWork.isNetwork(getActivity())){
Toast.makeText(getActivity(), "网络不可用", Toast.LENGTH_SHORT).show();
//跳转设置界面
//startActivity(new Intent(Settings.ACTION_SETTINGS));
//创建一个线程查询数据库并赋值
thread();
}else{
}
return view;
}
//查询数据库并展示
private void thread() {
new Thread(new Runnable() {
@Override
public void run() {
List<ResponBean.DataItem> query = dao.query();
adapter.setData(query);
}
}){}.start();
}
4.用到的工具类
public class NetWork {
/**
* 判断是否有网络
* */
public static boolean isNetwork(Context context){
//获取系统服务,连接服务
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(context.CONNECTIVITY_SERVICE);
//获取活动的网络信息
NetworkInfo activeNetworkInfo = cm.getActiveNetworkInfo();
//可用网络不为空且可用的话,说明有网
return activeNetworkInfo != null && activeNetworkInfo.isAvailable();
}
}