0
私のrecyclerviewにはimageviewとtextviewが1つあります。私はImageView onn onClickListener
のイメージを変更しています。今問題は、位置3の画像をクリックしてスクロールダウンすると、ポジション8の画像も変更され、スクロールアップすると位置2の画像が変更されます。recyclerviewの選択されたイメージはスクロール時に選択解除されます
public class PortraitListviewAdapter extends RecyclerView.Adapter<PortraitListviewAdapter.ViewHolder> {
Context context;
static List<PortraitParentListAdapterBean> list;
static List<String> selectedPosition ;
public PortraitListviewAdapter(Context context, List<PortraitParentListAdapterBean> list) {
this.context = context;
this.list = list;
selectedPosition = new ArrayList<>();
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.listview_parent_portrait, parent, false);
return new ViewHolder(itemView);
}
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
PortraitParentListAdapterBean portBean = list.get(position);
Log.i("pos",position+"");
holder.parentHeading.setText(portBean.getHeading());
if (selectedPosition.contains(list.get(position).getHeading())){
holder.parentImage.setImageResource(R.drawable.sad);
}
}
@Override
public int getItemCount() {
return list.size();
}
static class ViewHolder extends RecyclerView.ViewHolder {
protected TextView parentHeading;
protected ImageView parentImage;
public ViewHolder(View itemView) {
super(itemView);
parentHeading = (TextView)itemView.findViewById(R.id.parent_heading);
parentImage = (ImageView)itemView.findViewById(R.id.imageView);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectedPosition.add(list.get(getAdapterPosition()).getHeading());
parentImage.setImageResource(R.drawable.sad);
}
});
}
}
}
上記のコードは、recyclerviewアダプターの実装です。その概念を理解するのを助けてください。
if (selectedPosition.contains(list.get(position).getHeading())){ holder.parentImage.setImageResource(R.drawable.sad); } else { holder.parentImage.setImageResource(R.drawable.your_default_drawable); }
EXPLANATION
あなたRecyclerViewをスクロールすると、システムがないのrecreaと