2011-10-25 18 views
11

que yo agrego una vista de encabezado a la lista de vista utilizando el método típico de este modo:Android - ¿Cómo cambiar elementos de vista de encabezado/pie de página para ListView existente?

View header = getLayoutInflater().inflate(R.layout.list_header, null); 
TextView headerText = (TextView) header.findViewById(R.id.my_textview); 
headerText.setText("This is my header!"); 

myListView.addHeaderView(header); 
myListView.setAdapter(adapter); 

Luego, más tarde que necesito para alterar el texto de la cabecera de Vista de Texto ...

TextView headerText = (TextView) findViewById(R.id.my_textview); 
headerText.setText("new header text!"); 

Este no parece funcionar, ya que la forma en que originalmente adjunté el encabezado a la lista era inflándolo ...

¿Cómo cambio el texto?

+0

¿por qué es la segunda vez obtener encabezado textview resultCode TextView headerText = (TextView) findViewById (R.id.my_textview); ? solo usa el primero directamente para setText. – user370305

+0

publicar código de actividad completa por lo que es fácil entender el problema. – user370305

Respuesta

11

Simplemente debe almacenar la referencia a headerText que utilizó originalmente. Luego llame al setText más tarde.

+1

Este es el enfoque que terminé tomando. Pero como el 'headerText' se recuperó de una vista inflada, también tuve que almacenar la referencia a la vista inflada. ¡Funcionó sin embargo! –

0

¿Dónde está ejecutando el código para cambiar el texto del encabezado? Si no lo haces en el hilo de UI, la vista de texto no se actualizará.

Cuestiones relacionadas