[問題] 如何指定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