SQlite数据库

           将网络请求的数据加入数据库,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() {

        }
    });

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值