Android obtener la posición del elemento seleccionado en gridview
Como sabemos utilizar la vista de cuadrícula de Android, podemos hacer lo siguiente y ser notificado cuando se hace clic en el elemento:
gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int position, long id) { Toast.makeText(PopularCapitActivity.this, "" + position, Toast.LENGTH_SHORT).show(); } });
También sabemos que, si la celda de la cuadrícula contiene un elemento que se puede hacer clic, diga un botón, lo anterior no se disparará.
- Cómo establecer el borde de cada elemento GridView Image dinámicamente
- ¿Dónde puedo obtener gridviewitem flip animación de efectos simlar a appygeek?
- Android GridView carga los elementos verticalmente
- Anuncios nativos de Facebook en GridView: MediaView muestra un rectángulo gris
- Android Hexagon Grid
Por lo que actualmente tengo una vista de cuadrícula, cada célula tiene su propio botón, por lo que ahora, cuando el usuario hace clic en el botón, tendrá su propia acción basada en la celda en el botón reside en mi pregunta es, ¿cómo puedo acceder a la posición de la célula En el controlador de botones?
Gracias
- La vista de cuadrícula de Android se carga en orden inverso
- GridView y el exceso de espacio de relleno
- AQuery (Android Query) Cómo cargar imágenes en realidad
- Android GridView OnItemLongClick escuchador llamado después de OnItemClick
- Visualización de imágenes de una carpeta específica de la tarjeta SD mediante una vista de cuadrícula
- Después de onLongPress, la primera vista en gridview obtiene NullPointerException en startDrag
- Android Recyclerview GridLayoutManager espaciamiento de columnas
- Actualización del primer elemento gridview después de que getView lo infla dos veces
Suponiendo que está utilizando un adaptador personalizado para GridVIew, en el método getView simplemente puede agregar una etiqueta al objeto Button que contiene la posición pasada en getView:
button.setTag(new Integer(position));
Entonces, en el método onClickListener, con la vista que se pasa en (el botón) que puede hacer:
Integer position = (Integer)view.getTag();
Y luego manejar el valor de la posición de allí.
EDIT: Parece que la mejor práctica sería hacer:
button.setTag(Integer.valueOf(position));
En lugar de utilizar el constructor Integer.
GridView.setOnItemClickListener (nuevo AdapterView.OnItemClickListener () {@Override public void onItemClick (padre de AdapterView, vista de vista, posición de int, identificación larga) {
String a = String.valueOf(position); Toast.makeText(getApplicationContext(), a, Toast.LENGTH_SHORT).show(); } });
- EditText con SpannableStringBuilder y ImageSpan no funciona bien
- Estrategia de la aplicación de Android para realizar un seguimiento de una sesión de inicio de sesión