Как сделать так чтобы один выбранный элемент Grid был выделен?

Для того чтобы выделить один выбранный элемент на Grid в Android, можно использовать различные подходы, в зависимости от ваших конкретных требований и дизайна интерфейса. Вот несколько способов, которые вы можете использовать:

1. Использование Selector:
Этот способ подразумевает создание XML-файла селектора, который содержит различные состояния элемента, включая состояние "выбран". Вы можете создать файл selector.xml в директории res/drawable и определить различные состояния для выбранного элемента. Например:

<!-- res/drawable/selector.xml -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/selected_background" android:state_selected="true"/>
    <item android:drawable="@drawable/default_background"/>
</selector>

Затем в вашем адаптере для Grid вы можете установить этот селектор на нужный элемент:

gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        view.setSelected(true);
    }
});

2. Использование Custom Adapter:
Если вам нужно дополнительное управление над внешним видом выбранного элемента, вы можете создать собственный адаптер для Grid и контролировать состояние элемента в методе getView().

public class CustomAdapter extends BaseAdapter {
    private int selectedPosition;

    public void setSelectedPosition(int position) {
        selectedPosition = position;
        notifyDataSetChanged();
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // Остальная часть кода для создания элемента Grid
        if (position == selectedPosition) {
            // Изменить внешний вид выбранного элемента
        } else {
            // Восстановить внешний вид обычного элемента
        }
        return convertView;
    }
}

В вашей активности или фрагменте вы можете установить выбранный элемент, вызвав setSelectedPosition() метод адаптера:

gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        customAdapter.setSelectedPosition(position);
    }
});

3. Использование RecyclerView:
Если вы используете RecyclerView вместо GridView, то можно использовать RecyclerView.ItemDecoration для настройки внешнего вида выбранного элемента. В этом случае, вам потребуется создать собственный класс, расширяющий ItemDecoration, и переопределить методы getItemOffsets() и onDraw(), чтобы установить внешний вид для выбранного элемента.

Это только некоторые из возможных способов выделения одного выбранного элемента в Grid на платформе Android. Выбор конкретного подхода зависит от ваших предпочтений и требований к вашему приложению.