-
Problema passaggio valori
Ciao a tutti ragazzi, mi rivolgo a voi con la speranza di riuscire a risolvere il mio problema. in pratica sto ho il seguente codice
e la funzione:
ma nel momento in cui cerco di settare il nuovo testo con la funzione calcolaRisorse, l'app si chiude e mi da il seguente errore....
06-04 11:43:40.199: ERROR/AndroidRuntime(21838): android.view.ViewRoot$CalledFromWrongThreadExcepti on: Only the original thread that created a view hierarchy can touch its views.
Non so piu cosa provre help me pleaseeeee
Ultima modifica di Andrea; 04-06-11 alle 13:30
-
-
-
Administrator
Il problema risiede nel fatto che stai usando .setText di TextView direttamente all'interno di un thread esterno.
Devi utilizzare un AsyncTask ed overridare onPostExecute . oppure usi un handler.
PS: se scrivi il codice all'interno di [java]...[/java] il codice risulta colorato e di piu facile comprensione.
-
Il seguente Utente ha ringraziato Andrea per il post:
-
potresti farmi un esempio di come scrivere il codice per farlo funzionare?
intatno grazie per la risposta
-
-
Androidiano
Se non vuoi avere a che fare con un Handler guardati anche il metodo runOnUiThread della Activity.. Gli passi un oggetto che implementa Runnable con il codice che vuoi eseguire sul Main Thread responsabile del'interfaccia grafica (nel tuo caso il findViewById e l'operazione di setText)
PS: che cosa significa TextView denaro = (TextView)findViewById(1000); ?
Ultima modifica di Jordano; 04-06-11 alle 14:57
-
-
Ragazzi mi spiegate meglio...mi fate un esempio pratico...jordano quel codice significa che istanzio un nuovo oggetto textview assegnandolo da uno che ho gia creato e a cui ho dato un id. In pratica devo aggiornare il valore della textview nn so se mi sono spiegato
Inviato dal mio GT-I5500 usando Androidiani App
-
-
Androidiano
L'avevo capito che volevi riottenere la tua TextView, lo usi in modo abbastanza anomalo rispetto a come si fa di solito su Android riottenendo i riferimenti ai componenti creati nella parte xml con il findviewbyid.
hai usato il metodo setId( int )?
comunque devi avere il riferimento alla tua activity, poi dal thread esterno,
ti pasto un esempio che avevo scritto io..
onMessageReceived non era sul mainthread, da cui il problema di aggiornare l'interfaccia grafica
-
-
mamma mia ragazzi io non ci sto capendo piu niente qui, allora il codice che vi ho postato è l'unico che non funziona, ho fatto anche altre funzioni alla stessa maniera e funzionano tranquillamente...ora non capisco come mai non va...non esiste un modo per passare come parametro un oggetto view cosi da fare riferimento a quello per le modifiche alla textview?
-
-
Androidiano
Android è progettato in modo tale che l'interfaccia grafica possa essere manipolata solo da un ben determinato thread che non è quello che stai usando tu, quindi non puoi cambiare il testo da li (vedi il tuo errore).
Le principali alternative ( 3 ? ) ti sono state elencate, devi implementarne una.
-
Il seguente Utente ha ringraziato Jordano per il post:
-
per la miseria.....sta diventando un incubo..qualcuno sarebbe cosi gentile da farmi un esempio col codice che ho postato??
-
-
ragazzi davvero....non sono anora riuscito a capire...mi fate un esempio sulla base di quello che serirebbe a me?
-
Permessi di invio
- Non puoi inserire discussioni
- Non puoi inserire risposte
- Non puoi inserire allegati
- Non puoi modificare i tuoi messaggi
-
Regole del Forum