作者lee16818 (afkk)
看板AndroidDev
标题[问题] 如何指定RecyclerView当中的特定元件?
时间Sun Sep 5 20:39:22 2021
小鲁最近卡在一个问题点。
想要做出像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
--
Sent from my Windows
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 134.208.97.145 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1630845564.A.4B2.html
※ 编辑: lee16818 (223.137.131.164 台湾), 09/05/2021 20:43:00
1F:推 starburs: 把你的Star换成holder的Star即可09/07 09:43
感谢大大,已解决!
2F:推 jknm0510a: 你的Star是从哪来的?还是个object?前面S的大写让人很09/09 07:50
3F:→ jknm0510a: 困惑 09/09 07:50
Star是Resource的物件!
※ 编辑: lee16818 (223.137.131.164 台湾), 09/12/2021 01:58:21