如何在图片下点赞并保存"Liked"状态?

How to put Like function under an image and save the "Liked" status?

我正在尝试弄清楚如何将 "Like function" 放入一些本地存储的图像并记住用户喜欢这些图像的应用程序。让我解释一下:我希望用户能够在他喜欢的图像下按"Like"。这意味着必须以某种方式保存图像的 "Liked" 状态(我认为是通过 SharedPreferencies)。然后我想在另一个视图中制作一个表格视图,它将首先显示用户喜欢的图像,然后在他实际上不喜欢的图像下方显示(他只是没有按下按钮)。

我写的唯一代码是一个简单的 OnClick 代码,它是这样的:

like.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick (View v) {
            like.setImageResource(R.drawable.heartfull);
            //gotta put here what to do to set the image status to "Liked" 
              and save it so the app will know forever that the user liked it

        }
    });

我真的不建议在那种程度上使用 SharedPreferences。对我来说,这感觉就像扩展到其预期功能的 "abuse" 一样。也许其他人对此有不同的看法。我个人会使用 SQLite 数据库或其他东西。

不过,回答你的问题。

初始化你的赞按钮时:

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);

if(sp.getBoolean(unique_image_id, false)){
    like.setImageResource(R.drawable.heartfull);
}

当您点击赞按钮时。

like.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick (View v) {
         Boolean liked = !sp.getBoolean(unique_image_id,false);
            sp.edit().putBoolean(unique_image_id, liked).apply();
            if(liked){
            like.setImageResource(R.drawable.heartfull);
            }else{
              like.setImageResource(R.drawable.heartempty);    
        }
    });

图像的唯一 ID 可以是其文件路径或 url。