【发布时间】:2025-11-22 10:25:01
【问题描述】:
我在我的 RecyclerView 适配器中使用了一个切换按钮作为收藏夹
编辑:以下解决方案有效,但现在当我收藏一个并重新启动应用程序时,所有按钮都会被收藏,对于不喜欢的情况也是如此,请提供解决方案
代码如下:
@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
MyModel myModel = myModelList.get(position);
holder.imageView.setImageResource(myModel.getImage());
holder.textView.setText(myModel.getText());
holder.toggle_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
boolean isFavourite = readStae();
if (isFavourite) {
holder.toggle_btn.setBackgroundResource(R.drawable.fav);
isFavourite = false;
saveStae(isFavourite);
} else {
holder.toggle_btn.setBackgroundResource(R.drawable.unfav);
isFavourite = true;
saveStae(isFavourite);
}
}
});
}
@Override
public int getItemCount() {
return myModelList.size();
}
private void saveStae(boolean isFavourite) {
SharedPreferences aSharedPreferenes = context.getSharedPreferences(
"Favourite", Context.MODE_PRIVATE);
SharedPreferences.Editor aSharedPreferenesEdit = aSharedPreferenes
.edit();
aSharedPreferenesEdit.putBoolean("State", isFavourite);
aSharedPreferenesEdit.commit();
}
private boolean readStae() {
SharedPreferences aSharedPreferenes = context.getSharedPreferences(
"Favourite", Context.MODE_PRIVATE);
return aSharedPreferenes.getBoolean("State", false);
}
}
当我重新启动应用程序时,收藏按钮不存在。
我在做什么错,请解释解决方案,谢谢
【问题讨论】: