2011-10-25 13 views
11

Dire aggiungo una vista di testa alla mia vista elenco utilizzando il metodo tipico in questo modo:Android - Come modificare gli elementi di visualizzazione intestazione/piè di pagina per ListView esistente?

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); 

Poi, più tardi ho bisogno di modificare il testo della TextView intestazione ...

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

Questo non sembra funzionare, dal momento che il modo in cui ho originariamente attaccato l'intestazione alla lista era gonfiandolo ...

Come cambio il testo?

+0

perché sei la seconda volta ottieni l'intestazione textview resultCode TextView headerText = (TextView) findViewById (R.id.my_textview); ? basta usare il primo direttamente per impostare il testo. – user370305

+0

inserisci tutto il codice attività quindi è facile per noi capire il problema. – user370305

risposta

11

Dovresti semplicemente memorizzare il riferimento all'intestazioneTesto che hai usato in origine. Quindi chiama lo setText in seguito.

+1

Questo è l'approccio che ho preso. Ma poiché il 'headerText' è stato recuperato da una Vista gonfiata, ho dovuto anche memorizzare il riferimento alla Vista gonfiata. Ha funzionato però! –

0

Dove si sta eseguendo il codice per modificare il testo dell'intestazione? Se non lo fai sul thread dell'interfaccia utente, la visualizzazione del testo non verrà aggiornata.

Problemi correlati