SetOnItemClickListener () no funciona en gridView
Sé que esto ya se ha pedido, pero de alguna manera las soluciones no funcionan para mí.
Tengo un gridView
que es inflado por un relativeLayout
. El adaptador se clickListener
perfectamente, cuando agrego un clickListener
a uno de los childs de relativeLayout
también trabajan muy bien. Pero no el itemClickListener
en la vista de gridview
.
- GridView: Obtener una vista por posición
- No se puede crear el menú "Compartir" en el menú emergente de Android
- Android: ¿Cómo puedo eliminar un elemento de una vista de rejilla, teniendo los elementos restantes en orden aleatorio
- Número de filas de una vista de cuadrícula en android
- Cambio de fondo de una sola fila de gridview en android
Esto es lo que he intentado:
Vista en cuadrícula:
<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 añadido en 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>
El ajuste de escucha 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(); } });
No tengo idea de lo que va mal aquí.
- Configurar la fuente personalizada dentro de `ImageAdapter extends BaseAdapter`
- Cómo configurar el borde de GridView en Android
- Efecto de ondulación en la parte superior de la imagen - Android
- Desplazamiento bidireccional para Android
- Android ScrollView no se inicia en la parte superior, pero al principio del GridView
- No se puede obtener gridView en el elemento de escucha de clics
- Animación gridview de Android (ordenar) la lista al eliminar o agregar
- ¿Cómo tomar una captura de pantalla de gridview incluyendo todos los elementos de la cuadrícula?
Intenta establecer android:descendantFocusability="blocksDescendants"
a tu RelativeLayout
Y eliminar android:focusable="false" android:focusableInTouchMode="false"
de cada niño
Hey gente esto es cómo he resuelto el problema;
Al utilizar objetos que se pueden hacer clic en la cuadrícula, desafortunadamente, android no puede manejar el evento de clics de la cuadrícula.
SO USE use la vista de interfaz.
Ejemplo: USE IMAGEVIEW INSTEAD OF IMAGEBUTTON AND BUTTON
Si necesita mostrar algún texto en esa imagen use textview y alinee eso en la parte superior de imageview.