I want to implement a list of the user's favorite news for a news app using the room library, but the app crashes
Thank you for your help (:
DataBase:
I could not put the code, I used the photo: enter image description here
Dao:
@Dao
public interface DataDao {
@Insert
void insert_list_fav(FavModel favModel);
@Delete
void delete_fav(FavModel favModel);
@Query("SELECT * FROM tbl_fav")
LiveData<List<FavModel>> getFavList();
@Query("SELECT EXISTS (SELECT 1 FROM tbl_fav WHERE id=:id)")
int isFav(int id);
}
AdapterNews:
@Override
public void onBindViewHolder(@NonNull Holder holder, int position) {
LastNewsModel model= dataModels.get(position);
///////It is added to the list here
holder.save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FavModel favModel=new FavModel();
int id=model.getId();
String title=model.getTitle();
String desc=model.getDescription();
String pic=model.getPic();
String date=model.getDate();
favModel.setId(id);
favModel.setTitle(title);
favModel.setDate(date);
favModel.setDescription(desc);
favModel.setPic(pic);
if (DataBase.getDataBase(context).getDao().isFav(id)!=1){
holder.save.setImageResource(R.drawable.ic_saved);
DataBase.getDataBase(context).getDao().insert_list_fav(favModel);
}else {
holder.save.setImageResource(R.drawable.ic_save);
DataBase.getDataBase(context).getDao().delete_fav(favModel);
}
}
});
}
Erro:
Try to use thread or Asyc.
Simple example
Thread thread = new Thread() {
@Override
public void run() {
try {
//your code
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
thread.start();