Cómo establecer el elemento de vista de cuadrícula según lo seleccionado
Tengo un GridView
que utiliza el adaptador del arsenal para poblar los datos.
De forma predeterminada, cuando se muestra GridView
, tengo que mostrar uno de los elementos seleccionados. He utilizado gridview.setselected()
, pero no mostró el elemento GridView
como seleccionado (quiero decir, el fondo del elemento no se cambia). Hay alguna manera de mostrar un elemento específico como seleccionado cuando se carga la vista de cuadrícula. Por favor recomiende
- Android establece el GridView para tener 2 columnas por fila solamente
- Cómo obtener el número de filas de un GridView?
- GridView con muchas imágenes da como resultado un desplazamiento lento / áspero
- Inicie los Elementos GridView desde la derecha
- Obtener ID de la vista en GridView
- ¿Es posible crear un GridVIew de LinearLayouts?
- Cuadrícula de imágenes dentro de ScrollView
- GridView con colSpan y rowSpan
- Android obtener la posición del elemento seleccionado en gridview
- GridView de Tumblr-style en Android
- Desactivación de onClick para elementos seleccionados en GridView Android
- Problema de desplazamiento de GridView en Android
- ¿Cómo centrar un GridView en su matriz LinearLayout?
Luché con esto un poco ayer antes de darse cuenta de que lo que realmente quería era que el elemento fuera revisado. es decir
gridview.setItemChecked(position, true);
GridView.setSelected()
es en realidad heredado de View
y sólo establece el GridView
completo en su diseño según lo seleccionado.
Lo que está buscando es GridView.setSelection(int position)
para seleccionar el elemento actual en el GridView
desde la posición cero.
Otra función útil es GridView.getFirstVisblePostion()
que puede usarse para almacenar la ubicación actual en GridView
(si es grande y desplazable) para que pueda restaurarse cuando se restaura el estado de la instancia (digamos en una rotación) o de otra manera.
Al trabajar en estas cosas, siempre es útil buscar en la documentación de Android Developer para tu widget / objeto.
Espero que esto ayude
gridView.requestFocusFromTouch(); gridView.setSelection(1);
En el método getView()
del adaptador, haga lo siguiente
if(row != null) { if(position == selectedPosition){ set required background color } else { set background color to Color.TRANSPARENT } }
En el método onItemClick, establezca el valor Adapter.selectedPosition
y llame a notifydatasetchanged()
y luego proceda con la lógica requerida.
En <GridView>
elemento de xml set listSelector
to android:color/transparent
Compruebe con el siguiente método
GridView.setBackgroundResource(R.drawable.new_image_to_be_shown);
Esto le permitirá cambiar el fondo de su elemento seleccionado como la nueva imagen.
Y si desea cambiar el color del elemento seleccionado,
GridView.setBackgroundColor(int color);
Esto resolverá su problema.
- El proceso com.android.phone se ha detenido inesperadamente. Por favor, inténtelo de nuevo
- Google Play Developer Console actualizando problemas, normal?