从 SQLitE 数据库加载的数据未保存在模型类 ArrayList 中 [英] data loaded from SQLitE databse is not saving in the model class ArrayList android
问题描述
我正在从我的 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 的值.我的
是 0.所以为什么我的数据没有保存在模型类中.Adpter
的 getItemCount()
方法的 size()
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屋!