单击RecyClerview中的名称字段时,显示tick标记图像



我正在回收库中显示项目列表。如果我单击项目名称,则必须使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);
}

最新更新