Как выделить только один элемент рамкой в ​​GridviewAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как выделить только один элемент рамкой в ​​Gridview

Сообщение Anonymous »

Я пытаюсь отобразить выбранный элемент в виде сетки, создав для него белую рамку.

Мне удалось это сделать, но у меня возникла проблема как «отменить выбор» того, который был выбран ранее. Суть в том, чтобы оставить только один элемент с рамкой.

Вот что у меня есть:

Код: Выделить всё

GridView gridView = (GridView) findViewById(R.id.gridViewFX);
gridView.setAdapter(new ImageAdapter(this));
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {

for(int i = 0; i< parent.getCount(); i++){
//Unselect all the views in parent

}
//Select the item clicked
Log.v("FILTER NAME:", filterNames.get(position));
selectedFilterName = filterNames.get(position);

ViewHolder selectedHolder = (ViewHolder)view.getTag();
RoundedImageView iv = selectedHolder.getImageView();
iv.setBorderColor(Color.WHITE);
iv.setBorderWidth(20.f);

}
ОБНОВЛЕНИЕ: вот мой класс ImageAdapter и ViewHolder:

Код: Выделить всё

public class ImageAdapter extends BaseAdapter {

private LayoutInflater inflater;
private Context mContext;

public ImageAdapter(Context c) {
mContext = c;
inflater = LayoutInflater.from(mContext);
}

public int getCount() {
return bitmaps.size();
}

public Object getItem(int position) {
return null;
}

public long getItemId(int position) {
return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
View view = convertView;
if (view == null) {
view = inflater.inflate(R.layout.item_grid_image_fx, parent, false);
holder = new ViewHolder();
assert view != null;
holder.imageView = (RoundedImageView) view.findViewById(R.id.gridImageFXView);
holder.textView = (TextView)view.findViewById(R.id.effectNameTextView);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}

holder.imageView.setImageBitmap(bitmaps.get(position));
holder.textView.setText("" + filterNames.get(position));

return view;
}
}

static class ViewHolder {
public RoundedImageView getImageView() {
return imageView;
}

RoundedImageView imageView;
TextView textView;
}
Будем благодарны за любую помощь в том, что добавить в цикл for для отмены выбора!

Подробнее здесь: https://stackoverflow.com/questions/299 ... n-gridview
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»