SQlite数据库

来源:互联网 发布:评论系统源码 编辑:程序博客网 时间:2024/06/08 05:33

           将网络请求的数据加入数据库,listview展示数据,默认从数据库里显示

首先创建SQlite类

public class SQLite extends SQLiteOpenHelper {    public SQLite(Context context) {        super(context, "person.db", null, 1);//创建数据库    }    @Override    public void onCreate(SQLiteDatabase db) {        db.execSQL("create table user(_id Integer primary key autoincrement,title
            varchar(20),imageurl varchar(20))");    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {    }}
再创建SQLiteDao类,写增加、查询的方法:
public class SQLiteDao {    private final SQLiteDatabase db;    public SQLiteDao(Context context){        SQLite sqLite = new SQLite(context);        db = sqLite.getWritableDatabase();    }    public boolean addData(String title,String imageurl){        ContentValues values = new ContentValues();        values.put("title",title);        values.put("imageurl",imageurl);        long result = db.insert("user", null, values);        if (result!=-1){            return true;        }else{            return false;        }    }    public ArrayList<Data.DataBean> findData(){        Cursor cursor = db.query(false, "user", null, null, null, null, null, null, null);        ArrayList<Data.DataBean> datas = new ArrayList<>();        while (cursor.moveToNext()){            String title = cursor.getString(cursor.getColumnIndex("title"));            String imageurl = cursor.getString(cursor.getColumnIndex("imageurl"));            Data.DataBean dataBean = new Data.DataBean();            dataBean.setNews_title(title);            dataBean.setPic_url(imageurl);            datas.add(dataBean);        }        return datas;    }}
然后就在MainActivity里操作:
定义:
private ArrayList<Data.DataBean> datas;private SQLiteDao dao;
onCreate里初始化:
dao=new SQLiteDao(this);
lv= (ListView) findViewById(R.id.lv);//listview控件getHttp();  //获取网络数据datas=dao.findData();//调用SqliteDao里的查询方法adapter=new MyBaseAdapter(MainActivity.this,datas);//加载数据库里的数据lv.setAdapter(adapter);//获得适配器
  private void getHttp() {    RequestParams requestParams=new RequestParams("http://api.expoon.com/AppNews/g         etNewsList/type/1/p/1");//数据连接    x.http().get(requestParams, new Callback.CommonCallback<String>() {        @Override   //xutils网络请求        public void onSuccess(String result) {   //成功的方法            Data data = new Gson().fromJson(result, Data.class);//解析Gson数据            list=data.getData();    //list集合获取解析后的数据            adapter=new MyBaseAdapter(MainActivity.this,list);            lv.setAdapter(adapter);//加载网络数据                      if (datas.size()==0){//如果数据库里没数据                for (Data.DataBean lists:list){                    boolean b = dao.addData(lists.getNews_title(), lists.getPic_url                                 ());//把请求到的数据添加到数据库                    if (b){                        Toast.makeText(MainActivity.this, "添加成功", Toast.LENGTH_                        SHORT).show();                    }else {                        Toast.makeText(MainActivity.this, "添加失敗", Toast.LENGTH_                        SHORT).show();                    }                }            }        }        @Override        public void onError(Throwable ex, boolean isOnCallback) {        }        @Override        public void onCancelled(CancelledException cex) {        }        @Override        public void onFinished() {        }    });}



原创粉丝点击