首页 > 解决方案 > 如何使用共享首选项在 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
            );
        }
    }

标签: javaandroidsharedpreferences

解决方案


推荐阅读