Я создал внешнюю базу данных sqlite, в которой хранится информация о книгах.Его хранить в папке активов.Я создал объект книги, но теперь я не уверен, как хранить значения из базы данных в нем.Я использовал функцию списка для извлечения значений из базы данных с помощью библиотеки sqliteaccesshelper и вызвал ее в основной деятельности.Было бы очень полезно, если бы кто-то предложил мне, как хранить значения в моем объекте книги. Это - учебник, которому я следовал.
Мой объект book - это book () с четырьмя параметрами.
public book(String title, String author, byte[] image, String issue) {
Title = title;
Author = author;
Image = image;
Issue = issue;
}
Это функция базы данных.Обратите внимание, что это не правильно, и я не уверен, как заставить его хранить значение в моем объекте Book.
public List<String> getdetails() {
List<String> lstBook = new ArrayList<>();
Cursor cursor = database.rawQuery("SELECT Book_name, Author, Book_cover, Issue_status FROM books", null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
//This line is showing an error.
lstBook.add(cursor.getString(cursor.getColumnIndex("Book_name")), cursor.getString(cursor.getColumnIndex("Author")), cursor.getBlob(cursor.getColumnIndex("Book_cover")), cursor.getString(cursor.getColumnIndex("Issue_Status")));
book Book = new book(); //this is the book object
Book.setTitle(cursor.getString(0));
Book.setAuthor(cursor.getString(1));
Book.setImage(cursor.getBlob(2));
Book.setIssue(cursor.getString(3));
cursor.moveToNext();
}
cursor.close();
return lstBook;
}
Это мой MainActivity
// Open the database
databaseAccess.open();
List<String> lstBook = databaseAccess.getdetails();
RecyclerView myrv = (RecyclerView) findViewById(R.id.recyclerview_id);
RecyclerViewAdapter myAdapter = new RecyclerViewAdapter(this, lstBook);
myrv.setLayoutManager(new GridLayoutManager(this, 2));
myrv.setAdapter(myAdapter;
// Close the database
databaseAccess.close();
}
А это мой RecyclerView Adapter(Хотя я не уверен насчет установленной части изображения)
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
holder.bookname.setText(mData.get(position).getTitle());
holder.bookauthor.setText(mData.get(position).getAuthor());
byte[] data = mData.get(position).getImage(); Bitmap image = toBitmap(data);
holder.bookimg.setImageBitmap(image);
holder.issuestatus.setText(mData.get(position).getIssue());
}