[问题] 如何指定RecyclerView当中的特定元件?

楼主: lee16818 (afkk)   2021-09-05 20:39:22
小鲁最近卡在一个问题点。
想要做出像IG那样明信片的外观,然后能有类似按爱心后能填满并将爱心换色。
但实作后发现在Adapter当中的Resource没办法指定
也就是说我没办法指定是哪个Position当中的元件去变换爱心,每次操作只会更新最后一

附上程式码我额外在Adapter当中写的程式码。
private void initStar(Album_Adapter.ViewHolder holder,int position){
//连结数据库,透过数据库的纪录判断该相片是否已被按赞
DatabaseReference databaseRef = FirebaseDatabase.getInstance().getRefe
re
databaseRef.child(mKey.get(position)).child("Star").addValueEventListe
ne
@Override
public void onDataChange(@NonNull @NotNull DataSnapshot snapshot)
{
//若有责更改成实心图案,并换色
if(snapshot.getValue(String.class).equals("onDone")){
System.out.println("in Adapter");
int icon_change = outline_star_black_24dp;
Star.setImageDrawable(holder.itemView.getResources().getDr
aw
int color = Color.parseColor("#FFC0CB");
Star.setColorFilter(color);
}else if (snapshot.getValue(String.class).equals("noDone")){
//若无则改成空洞图案,病患色
int icon_change = outline_star_border_black_24dp;
int color = Color.parseColor("#C0C0C0");
Star.setImageDrawable(holder.itemView.getResources().getDr
aw
Star.setColorFilter(color);
}
}
@Override
public void onCancelled(@NonNull @NotNull DatabaseError error) {
}
});
}
这个Function是在onBindViewHolder当中呼叫的,也有确认过onClick的时候的position
是正确的,但就是没办法指定是哪个“Star”需要做换色。
若有大德之前解决过类似问题,拜托指教一下小鲁QQ
作者: starburs (星爆气流斩)   2021-09-07 09:43:00
把你的Star换成holder的Star即可
作者: jknm0510a (Kang)   2021-09-09 07:50:00
你的Star是从哪来的?还是个object?前面S的大写让人很困惑

Links booklink

Contact Us: admin [ a t ] ucptt.com