gpt4 book ai didi

android - 在 RecyclerView 中隐藏特定项目(在 SharedPreferences 中设置)

转载 作者:行者123 更新时间:2023-11-30 02:07:14 25 4
gpt4 key购买 nike

如果项目内容与 SharedPreferences 中设置的首选项匹配,我想过滤/隐藏 RecycleView 中的特定项目。

我想我必须以某种方式防止这些特定元素在适配器中膨胀,但我不知道如何做。

有什么想法吗?

干杯!

最佳答案

适配器是模型- View - Controller 设计模式的模型部分,用于使用 ListViewGridViewRecyclerView。所以你必须这样想:适配器,在任何时候,都必须反射(reflect)你想要在 RecyclerView 中显示的内容。

下面是一个示例:假设您有四个项目,您想要过滤第三个项目,因为它符合您的偏好。您的适配器的 getCount() 方法必须返回 3。对于 getView(),position == 0 必须返回第一个项目 View ,position == 1 必须返回第二个项目 View ,position == 2 必须返回第四个项目 View 。

由您的适配器代码来计算所有计算和偏移量,以确保它始终向 View 呈现一致的状态。例如,假设您有一个包含项目的 String 数组,以及一个指向不应显示的数组项目的索引 dontshow。您需要为 getView() 做这样的事情:

int index = position;  // position is input parameter
if (index >= dontshow) {
index++; // skip over the don't-show item
}
String item = items[index];
// now construct your view from this item

@Override
public int getCount() {
return items.length - 1;
}

然后,当您更改模型时,调用 notifyDataSetChanged() 告诉 RecyclerView 它必须调用 getCount()getView() 再次在您的适配器上重新显示更改的数据。

关于android - 在 RecyclerView 中隐藏特定项目(在 SharedPreferences 中设置),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30518871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com