[問題] 如何指定RecyclerView當中的特定元件?

看板AndroidDev作者 (afkk)時間3年前 (2021/09/05 20:39), 3年前編輯推噓2(201)
留言3則, 2人參與, 3年前最新討論串1/1
小魯最近卡在一個問題點。 想要做出像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://www.ptt.cc/bbs/AndroidDev/M.1630845564.A.4B2.html ※ 編輯: lee16818 (223.137.131.164 臺灣), 09/05/2021 20:43:00

09/07 09:43, 3年前 , 1F
把你的Star換成holder的Star即可
09/07 09:43, 1F
感謝大大,已解決!

09/09 07:50, 3年前 , 2F
你的Star是從哪來的?還是個object?前面S的大寫讓人很
09/09 07:50, 2F

09/09 07:50, 3年前 , 3F
困惑
09/09 07:50, 3F
Star是Resource的物件! ※ 編輯: lee16818 (223.137.131.164 臺灣), 09/12/2021 01:58:21
文章代碼(AID): #1XDBfyIo (AndroidDev)
文章代碼(AID): #1XDBfyIo (AndroidDev)