Я изначально сделал все свои флажки для gridview arrayadapter невидимыми. После долгого щелчка griditem я хочу сделать все флажки видимыми.
Мой адаптер класса
public class GridViewAdapter extends ArrayAdapter<ImageItem> {
private Context context;
private int layoutResourceId;
private ArrayList<ImageItem> data = new ArrayList<ImageItem>();
private File[] imageFiles;
public GridViewAdapter(Context context, int layoutResourceId, ArrayList<ImageItem> data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;//id of grid_item_layout
this.context = context;
this.imageFiles = imageFiles;
this.data = data; }
public View getView(final int position, final View convertView, @NonNull ViewGroup parent) {
row = convertView;
final ViewHolder holder;
//existing views recycled
if (row == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new ViewHolder();
//find resource...
holder.image = (ImageView) row.findViewById(R.id.image);
holder.check = (CheckBox) row.findViewById(R.id.checkbox);
row.setTag(holder);
} else {
holder = (ViewHolder) row.getTag();
}
holder.check.setOnCheckedChangeListener(null);
holder.check.setFocusable(false);
holder.check.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (data.get(position).isSelected()) {
data.get(position).setSelected(false);
} else {
data.get(position).setSelected(true);
}
}
});
holder.check.setChecked(data.get(position).isSelected());
holder.image.setImageBitmap(data.get(position).getImage());
return row;
}
static class ViewHolder {
ImageView image;
CheckBox check;
}
}
Это метод в основной деятельности.
gridAdapter = new GridViewAdapter(this, R.layout.grid_item_layout,
getData());
gridView.setAdapter(gridAdapter);
gridView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
for(int index = 0; index < adapterView.getChildCount(); index++) {
View nextchild = (adapterView.getChildAt(index));
CheckBox checkBox = (CheckBox)
nextchild.findViewById(R.id.checkbox);
checkBox.setVisibility(View.VISIBLE);
}
return true;
});
Это делает все флажки видимыми, кроме флажка одной строки. См. Изображение. Как сделать все флажки видимыми? Любая помощь приветствуется.