SetOnItemClickListener () не работает с gridView

Я знаю, что это уже спрошено, но почему-то решения для меня не работают.

У меня есть gridView который накачивается relativeLayout . Адаптер прекрасно устанавливается. Когда я добавляю clickListener к одному из дочерних элементов relativeLayout они также отлично работают. Но не itemClickListener в gridview .

Вот что я пробовал:

Вид сетки:

 <GridView android:id="@+id/gridView" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:clickable="true" android:clipToPadding="true" android:columnWidth="170dp" android:fitsSystemWindows="true" android:focusable="true" android:numColumns="auto_fit" android:stretchMode="columnWidth" > </GridView> 

Relativelayout добавлен в gridview:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/rlImage" android:layout_width="220dp" android:layout_height="180dp" android:focusable="false" android:focusableInTouchMode="false" android:paddingBottom="7dp" android:paddingRight="7dp" > <ImageButton android:id="@+id/image" android:layout_width="220dp" android:layout_height="220dp" android:adjustViewBounds="true" android:background="@null" android:focusable="false" android:focusableInTouchMode="false" android:scaleType="centerCrop" android:src="@drawable/noimage" /> <!-- <ImageButton --> <!-- android:id="@+id/imageHover" --> <!-- android:layout_width="220dp" --> <!-- android:layout_height="220dp" --> <!-- android:adjustViewBounds="true" --> <!-- android:background="@null" --> <!-- android:scaleType="fitXY" --> <!-- android:src="@drawable/tile_selector_style" /> --> <TextView android:id="@+id/ShowTitle" android:layout_width="220dp" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:focusable="false" android:focusableInTouchMode="false" android:hint="Show Title" android:paddingBottom="40dp" android:paddingRight="20dp" android:singleLine="true" /> <TextView android:id="@+id/ShowTime" android:layout_width="220dp" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:focusable="false" android:focusableInTouchMode="false" android:hint="Show Time" android:paddingBottom="20dp" android:paddingRight="20dp" android:singleLine="true" /> <ProgressBar android:id="@+id/progressBar" style="?android:attr/progressBarStyleHorizontal" android:layout_width="220dp" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_margin="0dp" android:focusable="false" android:focusableInTouchMode="false" /> </RelativeLayout> 

Настройка приемника gridview:

 gv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub Log.v("griditem", "clicked"); Toast.makeText(context, "Here", Toast.LENGTH_LONG).show(); } }); 

Не знаю, что здесь происходит.

Попробуйте установить android:descendantFocusability="blocksDescendants" на ваш RelativeLayout

И удалить android:focusable="false" android:focusableInTouchMode="false" от каждого ребенка

Эй, ребята, так я решил проблему;

При использовании кликабельных объектов в сетке, к сожалению, android не может обработать событие щелчка сетки.

SO USE использовать интерфейс.

Пример: ИСПОЛЬЗОВАНИЕ IMAGEVIEW ВМЕСТО ИЗОБРАЖЕНИЯ И КНОПКИ

Если вам нужно показать какой-то текст на этом изображении, используйте textview и выровняйте его поверх изображения.