网络请求的数据,添加到数据库,断开网络直接查询

xiaoxiao2025-06-26  8

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(); }

}

转载请注明原文地址: https://www.6miu.com/read-5032538.html

最新回复(0)