java - 如何使用共享首选项在 android studio 中保存最喜欢的图像的 imageView?
问题描述
我的应用程序中有一个最喜欢的功能。当用户点击收藏按钮来收藏某个商店或商品时,心形的图像会从轮廓变为内嵌,类似于 Instagram 中点赞按钮的工作方式。
现在它工作正常,当我单击它和所有内容时它会发生变化,但是当我移动到另一个页面或关闭应用程序时,它不会记住这是一个保存的项目或商店。
单击后如何保存ImageView
,有人移动到另一个活动或关闭应用程序?
完整代码:
details_fave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Task<QuerySnapshot> f = fStore.collection("Favorites")
.whereEqualTo("shopPID", SID).whereEqualTo("usersID", UID)
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
QuerySnapshot querySnapshot = task.getResult();
if (querySnapshot.isEmpty()) {
details_fave.setImageResource(R.drawable.ic_baseline_favorite_24);
clicked = !clicked;
Map<String, Object> fav = new HashMap<>();
fStore.collection("Favorites").add(fav).addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
@Override
public void onSuccess(DocumentReference documentReference) {
Toast.makeText(DetailsActivity.this, "Saved", Toast.LENGTH_SHORT).show();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(DetailsActivity.this, "Something went wrong", Toast.LENGTH_SHORT).show();
}
});
}else {
for (QueryDocumentSnapshot document : task.getResult()) {
document.getReference().delete();
Toast.makeText(DetailsActivity.this, "Deleted", Toast.LENGTH_SHORT).show();
}
details_fave.setImageResource(R.drawable.ic_outline_favorite_border_o);
}
}
}
});
}
});
我的代码最喜欢的图像代码:
details_fave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (querySnapshot.isEmpty()) {
details_fave.setImageResource(
R.drawable.ic_baseline_favorite_24
);
}else{
details_fave.setImageResource(
R.drawable.ic_outline_favorite_border_o
);
}
}