0
我試圖在clicked時突出顯示我在recyclerView中選擇的項目,但它會觸發兩個項目。請幫幫我。我是否應該將點擊的項目存儲爲數組列表,並在新點擊時清除它們?RecyclerView適配器notifyItemChanged觸發兩次
public class StationsAdapter extends RecyclerView.Adapter<StationsHolder> {
List<Station> stations;
public StationsAdapter(List<Station> stations){
this.stations = stations;
}
public void changeItemAtPosition(int position) {
notifyItemChanged(position);
}
@Override
public StationsHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new StationsHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.stations_item,parent,false));
}
@Override
public void onBindViewHolder(StationsHolder holder, int position) {
bind(holder);
}
private void bind(final StationsHolder holder) {
holder.tvTitle.setText(stations.get(holder.getAdapterPosition()).getName());
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
holder.tvTitle.setTextColor(ContextCompat.getColor(AppDelegate.getContext(),R.color.colorAccent));
}
});
}
@Override
public int getItemCount() {
return stations.size();
}
}
爲什麼你需要調用notifyItemChanged如果你只是改變顏色,並且你正在執行setOnClickListener方法呢? – zon7
@ zon7無論如何,它會改變2項顏色:( –
兩個項目,當你滾動不是嗎?這是因爲它重新使用視圖,你必須重置視圖參數,如顏色,當你改變它們dinamically.I將添加一個響應 – zon7