我正在回收库中显示项目列表。如果我单击项目名称,则必须使tick标记图像可见。如果我单击名称,则图像是可见的,但是当我滚动时,图像位置正在不断变化。请谁来帮助我解决这个问题?
这是我的RecyClerviewAdapter
的代码 public class Category_adapter extends RecyclerView.Adapter<Category_adapter.MyViewHolder> {
Activity context;
boolean sample = false;
ArrayList data = new ArrayList<>();
public static class MyViewHolder extends RecyclerView.ViewHolder {
TextView txt_name;
ImageView img_select;
public MyViewHolder(View itemView) {
super(itemView);
txt_name = (TextView)itemView.findViewById(R.id.txt_category_new);
img_select = (ImageView) itemView.findViewById(R.id.img_select);
img_select.setVisibility(View.GONE);
txt_name.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
img_select.setVisibility(View.VISIBLE);
Log.e("name", "Holder Name" + txt_name.getText().toString());
}
});
}
}
public Category_adapter(Activity con, ArrayList data) {
this.data = data;
this.context = con;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent,
int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.category_adapter, parent, false);
MyViewHolder myViewHolder = new MyViewHolder(view);
return myViewHolder;
}
@Override
public void onBindViewHolder(final MyViewHolder holder, final int listPosition) {
holder.txt_name.setText(data.get(listPosition).toString());
}
@Override
public int getItemCount() {
return data.size() ;
}
}
ArrayList<Boolean> clicked = new ArrayList<>();
并保存单击的值。
和onbindview持有人放置了这样的东西:
if(clicked.get(position)){
view.setvisiblity(View.VISIBLE);
}else{
view.setvisiblity(View.GONE);
}