从 SQLitE 数据库加载的数据未保存在模型类 ArrayList 中 [英] data loaded from SQLitE databse is not saving in the model class ArrayList android

查看:28
本文介绍了从 SQLitE 数据库加载的数据未保存在模型类 ArrayList 中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在从我的 SQLite 数据库 中检索数据.我检查了我的数据是否成功检索,但这并没有通过记录值保存在我的 Model Class 的 ArrayList 中.

I am retrieving data from my SQLite database. I checked that my data is retrieving successfully but this is not saving in the ArrayList of my Model Class by logging values.

然后我记录了 list 的值.我的 AdptergetItemCount() 方法的 size() 是 0.所以为什么我的数据没有保存在模型类中.

and then I logged the value of list. size() of my getItemCount() method of my Adpter which is 0. so why my data is not saving in the model class.

ReadSqliteData() 方法

ReadSqliteData() method

public void ReadSqliteData(Context context){
ArrayList<Model> list = new ArrayList<>();
Adpter adpter = new Adpter(list,context);
SQLiteDatabase database = getWritableDatabase();
Cursor cursor = database.rawQuery("Select name, image from orders",null);
while (cursor.moveToNext()){
    Model model = new Model();
    model.setImage(cursor.getString(0));            
    model.setName(cursor.getString(1));    
    list.add(model);
}
adpter.notifyDataSetChanged();
cursor.close();
database.close();
}

和我的适配器类中的这个方法

and this method in my adapter class

@Override
    public int getItemCount() {
        Log.d("tag",String.valueOf(list.size())); /// i am getting this value 0
        return list.size();
    }

我也尝试放置构造函数.但这也不起作用.

I tried putting constructor also. but that is also not working.

模型.java

如果适配器代码需要在下面评论

if Adapter code needed comment below

推荐答案

试试下面的代码.

 class Adapter extends RecyclerView.Adatper<RecyclerViewAdapter.RecyclerViewHolder>(){
 //add new method in adapter class
 Public void dataChange(ArrayList<Model> itemList){
  //update your previous list with the new list
  previousList = itemList;
  notifyDataSetChanged()
  }

}


public void ReadSqliteData(Context context){
ArrayList<Model> list = new ArrayList<>();
Adpter adpter = new Adpter(list,context);
SQLiteDatabase database = getWritableDatabase();
Cursor cursor = database.rawQuery("Select name, image from orders",null);
while (cursor.moveToNext()){
Model model = new Model();
model.setImage(cursor.getString(0));            
model.setName(cursor.getString(1));    
list.add(model);
}
//call adapter dataChange() method from here
adpter.dataChange(list);
cursor.close();
database.close();
}

这篇关于从 SQLitE 数据库加载的数据未保存在模型类 ArrayList 中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆