我有一个产品列表,我正在使用recycleView
来显示它们。
我想根据数据库中的数据更改其中一些的颜色。
我已经掌握了所有信息,我只想知道如何正确进行操作。 我只是在适配器类中编写了一个函数,该函数从数据库中读取并获取我要着色的所有产品。我在构造函数中调用此函数。
我不知道我是否在正确的地方写了它。
无论如何,我的问题是我想在-onBindViewHolder
至setTextColor
内阅读
但是数据尚未更新,因此基本上什么也没发生。
@Override
public void onBindViewHolder(@NonNull ProductItemView holder, int position)
{
holder.bind(mproductsList.get(position), barcodes.get(position));
....
....
holder.nameProductTextView.setTextColor(Color.GREEN);
}
mproductsList
是所有产品的清单,我想将其中一些涂成彩色。
在.......
部分中,我检查该产品是否在另一个容器中,该容器是通过我上面编写的函数从数据库中读取的。
答案 0 :(得分:0)
我相信您正在使用RecyclerView.Adapter,因为onBindViewHolder的方法签名只有两个参数。 Firebase拥有自己的用于recyclerviews的适配器,请参阅FirebaseRecyclerAdapter。它为您侦听数据库,因此您无需继续查询数据库。只需实现OnDataChanged方法即可执行数据更新时想要做的事情。