2012-08-07 15 views
7

Ho un ScrollView generato in modo programmatico con un TextView all'interno di esso. Desidero aggiornare il testo nello TextView di tanto in tanto e alcuni hanno implementato una funzione di gestione per aggiornare l'elemento GUI TextView. Questo sembra chiamare/funzionare correttamente.ScrollView contents update

Tuttavia, attualmente l'unico modo che ho trovato per realtà otteniate TextView per mostrare le informazioni allegate è quello di chiamare:

consoleText.append("New text to add to TextView"); 
// then: 
myScrollView.removeView(myTextView); 
myScrollView.addView(myTextView); 

Questo non è particolarità ottimale e si chiedeva in quale altro modo posso aggiornare la contenuto del ScrollView per mostrare le mie informazioni appena aggiunto ...

anche:

invalidate(); 
postvalidate(); 

Non sembra che faccia nulla: l'oggetto TextView ha il nuovo testo in esso contenuto (guardando nel debug) non lo sta semplicemente disegnando sullo schermo a meno che non chiami la funzione aggiungi/rimuovi.

Grazie per qualsiasi informazione/aiuto che potete dare

FR

+0

La funzione append chiama setText() sulla vista testo sotto il cofano? – Samuel

risposta

8

Si dovrebbe chiamare invalidate() e requestLayout() sul TextView, e forse lo ScrollView.

+0

consoleText.invalidate(); consoleText.requestLayout(); Grazie mille :) – FiniteRed

+1

La chiamata 'invalidate()' e 'requestLayout' su' ScrollView' ha risolto anche il mio problema di vista. Grazie! – camelCaseCoder