2015-11-27 57 views
0

我創建了一個帶有圖標的列表項。使用RecyclerView.AdapterAndroid RecyclerView.Adapter更改圖標onClick

在onClick圖標上,我想更改圖標。 (我能行)。但是,當您向上或向下滾動列表時,將會有其他隨機列表項目圖標發生更改。

public void onBindViewHolder(StatusViewHolder holder, int position) { 
       ... 

final InviteFriend data = mInviteFriend.get(position); 

    if(data.isSelected()) { 

       holder.imageView.setImageResource(R.drawable.ic_person_black_24dp); } 
       holder.imageView.setTag(data); 

       holder.imageView.setOnClickListener(new View.OnClickListener() { 
        public void onClick(View view) { 
         ImageView imageView = (ImageView) view; 
         InviteFriend inviteFriend = (InviteFriend) imageView.getTag(); 
         inviteFriend.setSelected(true); 
         imageView.setImageResource(R.drawable.ic_person_black_24dp); 
         notifyCounterChanged(true); 
        } 
       }); 

    } 

回答

2

在回收查看視圖將被回收,以節省內存使用
所以你需要添加其他在你的病情

if(data.isSelected()) { 
    // your original code 
} else { 
    holder.imageView.setImageResource(R.drawable.your_drawable); 
    //Put another code if you want 
} 
+1

非常感謝。我完成忘記了RecyclerView不會保存狀態 – Joolah

+0

不客氣,我也有時忘了它;) –

+0

非常感謝。我遇到的問題是每個列表項目都會更改爲爲更改的行設置的圖標。我遇到了這個問題,因爲我只有一個'if'語句。其他人修復它。 – androidtitan