如何在图片下点赞并保存"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。
我正在尝试弄清楚如何将 "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。