Cómo acceder a un elemento específico de cada elemento de vista de cuadrícula

Tengo un gridview en el que hay dos elementos en cada uno de sus elementos, el primero es una imagen y el segundo es un título, el título es invisible en el lanzamiento de la aplicación, pero tengo un botón fuera de la vista de cuadrícula que cuando Hago clic en él, quiero cambiar la visibilidad de los títulos de los elementos a ser visible, mi problema es que no puedo acceder a cada título de cada elemento en la vista de la cuadrícula. Cuando establezco la visibilidad de los títulos (TextView) en el método onClick del botón independiente de mi actividad, cambia la visibilidad SOLAMENTE para el PRIMER elemento en la vista de cuadrícula.

Este bosquejo representa mi interfaz, así que los títulos son invisibles en el principio, pero cuando hago clic en "SetVisibilityButton", quiero fijarlos a Visible:

Image1 Image2 Image3 Title1 Title2 Title3 Image4 Image5 Image6 Title4 Title5 Title6 Image7 Image8 Image9 Title7 Title8 Title9 ---------------------------- SetVisibilityButton ____________________________ 

Fijé la visión de la rejilla en mi actividad del oncreate ():

  favorGrid = (GridView) findViewById(R.id.favorGrid); favorGrid.setAdapter(adapter); 

En mi clase ImageAdapter, este es mi método getView ():

  @Override public View getView(int position, View convertView, ViewGroup parent) { View MyView = convertView; /*we define the view that will display on the grid*/ //Inflate the layout LayoutInflater li = getLayoutInflater(); MyView = li.inflate(R.layout.favor_item, null); // Add The Text!!! TextView tv = (TextView)MyView.findViewById(R.id.title); tv.setText(mTitles[position]); // Add The Image!!! ImageView iv = (ImageView)MyView.findViewById(R.id.favor_item_image); iv.setImageResource(mThumbIds[position]); return MyView; } 

Para obtener el texto del título de mi actividad principal y establecer su visibilidad, intenté:

  TextView title = (TextView) findViewById(R.id.title); title.setVisibility(View.VISIBLE); 

Y probado:

  // gv is the gridview (R.id.gridview) TextView title = (TextView)gv.findViewById(R.id.title); title.setVisibility(View.VISIBLE); 

Y probado:

  LinearLayout layout = (LinearLayout) findViewById(R.id.gridLayout); TextView title = (TextView)layout.findViewById(R.id.title); title.setVisibility(View.VISIBLE); 

Pero todas estas soluciones establecen la visibilidad para sólo el primer elemento en la vista de cuadrícula.

Pasé mucho tiempo con este problema, pero aún no he encontrado una solución, ¿alguien podría ayudarme a arreglarlo por favor gracias de antemano

Esto es simple:

 GridView mGridView (Your object instance) final int size = mGridView.getChildCount(); for(int i = 0; i < size; i++) { ViewGroup gridChild = (ViewGroup) mGridView.getChildAt(i); int childSize = gridChild.getChildCount(); for(int k = 0; k < childSize; k++) { if( gridChild.getChildAt(k) instanceof TextView ) { gridChild.getChildAt(k).setVisibility(View.GONE); } } } 

La forma correcta de obtener la vista de la lista para una posición específica es la siguiente:

 View viewItem = list.getChildAt(position); if (viewItem != null) { TextView text = (TextView) viewItem.findViewById(R.id.item); } 
  • Cómo agregar gridview setOnItemClickListener
  • Cómo encontrar el elemento dentro de un gridview en Android?
  • Cómo establecer un espacio igual con Android GridView?
  • Diferentes Rowheights en Android GridView o equivalente
  • Artículos duplicados en el widget GridView
  • Cambio de fondo de una sola fila de gridview en android
  • OnClickListener no funciona para el primer elemento en GridView
  • En el adaptador gridview, getView (position == 0) fue invocado demasiadas veces para medir el diseño cuando setImageBitmap () en un cargador
  • Desplaza la vista de cuadrícula mientras arrastra el elemento (como sombra)
  • GridView mediante Custom ArrayAdapter
  • ¿Cómo puedo crear un diálogo de alerta personalizado con vista de cuadrícula en android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.