从卡片视图 android 中的图标实施 "Add to favourites"

Implement "Add to favourites" from icon in cardview android

在我的应用程序中,添加到收藏夹 卡片视图中的图标。单击该图标后,我的卡片应添加到 我的收藏夹列表 并且该图标应切换为不同的颜色。

再次点击它应该会从我的收藏夹中删除。我想通过sharedpreference来完成这个任务。

我应该如何按顺序完成这项任务?

  1. 希望您已完成所有布局。如果没有 - 创建它们。确保 Favorites 是一个 ToggleButton
  2. 为您的 ListView 或 RecyclerView 创建适配器
  3. 在Adapter里面,绑定视图的时候调用:

        findViewById(R.id.btn_favourite).setOnClickListener(new View.OnClickListener() {
        public void OnClick(View view) {
            if(view.isSelected) {
                 markAsFavourite(item);
            } else {
                 removeFromFavourites(item);
            }
        }
        });
    

    其中 item 是 Object 表示您的列表的数据

  4. 实施markAsFavourite(item);和 removeFromFavourites(item); 方法。这是 markAsFavourite(item) 使用 SharedPreferences 的粗略示例。

        Set itemIds = mSharedPreferences.edit().getStringSet(KEY, new Set());
        itemIds.put(item.getId);
        mSharedPreferences.edit().putStringSet(itemIds).commit();
    
  5. 更新收藏夹列表视图中的数据。

5.1 从 SharedPreferences 获取项目 ID

5.2 Select 项目的 sub-list 根据 ids.

5.3 更新收藏夹列表适配器。