まず、RecyclerViewの動作を理解する必要があります。
セルをスクロールすると、画面から外に出るビューはRECYCLEDになり、後で入力ビューを表示するために再利用されます。したがってRecyclerViewという名前。このようにして、ビューは常にリサイクルされ再利用され、メモリが節約されます。あなたがする必要がどのような
このようなものです:私はそれを扱うことができない
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
//mList and mSelectedObjects are array lists
View yourView = holder.itemView.findViewById(R.id.your_view);
Object object = mList.get(position);
yourView.setTag(object);
yourView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Object object = (Object) v.getTag();
if (mSelectedObjects.contains(object)) {
mSelectedObjects.remove(object);
v.setBackground(null);
} else {
mSelectedObjects.add(object);
v.setBackgroundColor(Color.GRAY);
}
}
});
}
おかげJagoanネオン。ちょうど私のコードを適応させる方法を知らない。とにかく私は本当にありがとうございます。 –