Conmutar visibilty en un TextView

Para dar las gracias debes entrar o registrarte en el foro

Recién llegado
Recién llegado
Mensajes: 2 Agradecido: 0
15 May 2012, 19:35# 1

En primer lugar, gracias por anticipado.

Estoy iniciándome en la programación Android (y ya de paso en la programación Java) y (como no) he empezado por la aplicación hola mundo que para variar se llama AndroidLove, basándome en un libro bastante simple de "Head First" y que se las prometía muy sencillas. Bueno, al grano

El caso es que la aplicación consiste en un botón y un label de texto. Hasta ahí nada más simple... ¡Ja!
El botón : txtHaiku
El cuadro de texto : cmdVerHaiku


En la actividad principal he añadido este código que en teoría tiene que "ocultar" ó "mostrar" el cuadro de texto.

public void onClickcmdVerHaiku( View view ) {
TextView haikuTextView = (TextView) findViewById( R.id.txtHaiku) ;

if (haikuTextView.getVisibility() == 2 || haikuTextView.getVisibility() == 1) {
haikuTextView.setText("Texto 0");
haikuTextView.setVisibility( 0 );}
else {
haikuTextView.setText("Texto 2");
haikuTextView.setVisibility( 2 ); }
}


Pues bien... Cuando inicio la aplicación el cuadro está oculto.
Si pulso el botón una vez... muestra el cuadro con el texto "Texto 2"
Si le vuelvo a pulsar...
como el que tiene tos y se rasca el ombligo. Ni se inmuta.
Me imagino que habrá que hacer algún refresh del layout o algo así.
Se admiten sugerencias.

Gracias.

Gracias  
Etiquetado en:
Recién llegado
Recién llegado
Mensajes: 2 Agradecido: 0
17 May 2012, 11:52# 2

Pues voy a contestarme yo mimmo. Al final se ha solucionado de la siguiente manera (he cambiado algunas cosas del código) :

public void onClickcmdVerHaiku( View view ) {
TextView txtTextoHaiku = (TextView) findViewById( R.id.txtHaiku);
Button cmdMostrar = (Button) findViewById( R.id.cmdVerHaiku );

if (txtTextoHaiku.getVisibility() == view.GONE || txtTextoHaiku.getVisibility() == view.INVISIBLE ) {
cmdMostrar.setText("Ocultar Haiku");
txtTextoHaiku.setVisibility( view.VISIBLE );
} else {
cmdMostrar.setText("Mostrar Haiku");
txtTextoHaiku.setVisibility( view.GONE );
}
}

Básicamente he sustituido la comparativa por el valor 0, 1 y 2 por el view.VISIBLE ... view.GONE ... y view.INVISIBLE, tanto para hacer comparativas como para asignar los valores.
Cosas veredes, Sancho.
Un saludo a tod@s.

Gracias  