public
class
ImageAdapter
extends
RecyclerView.Adapter<ImageViewHolder> {
private
static
final
String TAG =
"CustomAdapter"
;
private
List<ImageInfo> mDataSet =
new
ArrayList<>();
interface
Listener {
void
onImageChecked(ImageInfo imageInfo);
}
private
Listener mListener;
public
ImageAdapter(List<ImageInfo> dataSet, Listner listener) {
mDataSet = dataSet;
mListener = listener;
}
public
void
setData(List<ImageInfo> dataSet) {
mDataSet = dataSet;
notifyDataSetChanged();
}
public
void
setListener(Listener listener) {
this
.mListener = listener;
}
@Override
public
ImageViewHolder onCreateViewHolder(ViewGroup viewGroup,
int
viewType) {
View v = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.row_item, viewGroup,
false
);
return
new
ViewHolder(v, listener);
}
@Override
public
void
onBindViewHolder(ImageViewHolder viewHolder,
final
int
position) {
viewHolder.bind(getItem(position);
}
private
ImageInfo getItem(
int
position) {
return
mDataSet.get(position);
}
@Override
public
int
getItemCount() {
return
mDataSet.length;
}
}
public
static
class
ImageViewHolder
extends
RecyclerView.ViewHolder {
private
final
ImageView imageView;
private
final
Checkbox checkBox;
private
final
Listener listener;
public
ViewHolder(View v, Listener listener) {
super
(v);
imageView = v.findViewById(R.id.imageView);
button = v.findViewById(R.id.button);
this
.listener = listener;
}
public
void
bind(Imageinfo data) {
imageView.setImageResource(data.getDrawableId());
checkBox.setChecked(data.isChecked());
checkBox.setOnClickListener(
new
View.OnClickListener() {
@Override
public
void
onClick(View v) {
if
(listener !=
null
) listener.onImageChecked(data)
}
});
}
}