Итак, у меня есть recyclerView, и когда пользователь нажимает на LikeButton, элемент / строка сохраняется в БД комнаты "favour_table" и в пользовательском действии "Избранное".
Избранные действия пользователя:
Когда пользователь нажимает на снова выбрал LikeButton, я хочу удалить строку из «Favorites_table» в моей БД и любимое занятие. Использование mAppRepository.deleteRow (favouriteModel); не удаляет строку / элемент, по которым щелкнули. Как удалить строку / элемент при нажатии кнопки LikedButton? Адаптер для recyclerView:
@Override
public void onBindViewHolder(@NonNull LessonsViewHolder holder, int position) {
Log.i(TAG, "onBindViewHolder: Bind RecyclerView");
final LessonsModel lessonsModel = mLessonsModelList.get(position);
holder.BindLessonsModel(lessonsModel);
holder.fav_status.setLiked(mLocalStorage.isLessonFavorited(lessonsModel.getKey_id()));
holder.fav_status.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FavoriteModel favoriteModel = new FavoriteModel();
int fav_stat = lessonsModel.getFav_status();
String title_norsk = lessonsModel.getTitle_Norsk();
String title_pornun = lessonsModel.getTitle_Pronun();
String title_tigrinya = lessonsModel.getTitle_Tigrinya();
int audio = lessonsModel.getAudioRecource();
String lesson_name = lessonsModel.getLesson_name();
favoriteModel.setFav_status(fav_stat);
favoriteModel.setTitle_Norsk(title_norsk);
favoriteModel.setTitle_Tigrinya(title_tigrinya);
favoriteModel.setTitle_Pronun(title_pornun);
favoriteModel.setAudioRecource(audio);
favoriteModel.setLesson_name(lesson_name);
if (mLocalStorage.isLessonFavorited(lessonsModel.getKey_id())) {
mLocalStorage.unFavoriteLesson(lessonsModel.getKey_id());
mAppRepository.deleteRow(favoriteModel);
//mAppRepository.deleteAllFav();
//favoriteModelList.remove(position);
holder.fav_status.setLiked(false);
StyleableToast.makeText(v.getContext(), removeFromText, Toast.LENGTH_SHORT,
R.style.toastStyles).show();
} else {
mLocalStorage.favoriteLesson(lessonsModel.getKey_id());
mAppRepository.insertToFV(favoriteModel);
holder.fav_status.setLiked(true);
StyleableToast.makeText(v.getContext(), addToFavText, Toast.LENGTH_SHORT,
R.style.toastStyles).show();
}
}
});
}
@Override
public int getItemCount() {
if (mLessonsModelList != null) {
return mLessonsModelList.size();
} else {
return 0;
}
}
FavoriteDAO для "favour_table"
@Dao
public interface FavoriteDAO {
// Inserting favorite lessons into Favorite table
@Insert
void insertIntoFavTable(FavoriteModel favoriteModel);
@Query("SELECT * FROM favorite_table")
LiveData<List<FavoriteModel>> getFavoriteModel();
// Remove All favorites from favorite table
@Query("DELETE FROM favorite_table")
void deleteAllFav();
@Delete
void deleteRow(FavoriteModel favoriteModel);
}
FavoriteModel / Entity:
package com.asenay.norsk_tigrinya.UserFavorite;
import androidx.room.ColumnInfo;
import androidx.room.Entity;
import androidx.room.Ignore;
import androidx.room.PrimaryKey;
@Entity(tableName = "favorite_table")
public class FavoriteModel {
@PrimaryKey(autoGenerate = true)
private Integer key_id;
private String title_Norsk;
private String title_Pronun;
private String title_Tigrinya;
private int mAudioRecource;
@ColumnInfo(name = "fav_status")
private int fav_status;
private String lesson_name;
public FavoriteModel() {
}
/* public FavoriteModel(String title_Norsk,
String title_Pronun,
String title_Tigrinya,
int audioRecource,
int fav_status,
String lesson_name) {
this.title_Norsk = title_Norsk;
this.title_Pronun = title_Pronun;
this.title_Tigrinya = title_Tigrinya;
this.mAudioRecource = audioRecource;
this.fav_status = fav_status;
this.lesson_name = lesson_name;
}*/
public Integer getKey_id() {return key_id;}
public void setKey_id(Integer key_id) {this.key_id = key_id;}
public String getTitle_Norsk() { return title_Norsk; }
public void setTitle_Norsk(String title_Norsk) {this.title_Norsk = title_Norsk;}
public String getTitle_Pronun() {return title_Pronun;}
public void setTitle_Pronun(String title_Pronun) {this.title_Pronun = title_Pronun;}
public String getTitle_Tigrinya() {return title_Tigrinya;}
public void setTitle_Tigrinya(String title_Tigrinya) {this.title_Tigrinya = title_Tigrinya; }
public int getAudioRecource() {return mAudioRecource;}
public void setAudioRecource(int audioRecource) {mAudioRecource = audioRecource;}
public int getFav_status() {return fav_status;}
public void setFav_status(int fav_status) {this.fav_status = fav_status;}
public String getLesson_name() {return lesson_name;}
public void setLesson_name(String lesson_name) {this.lesson_name = lesson_name;}
}