Autore Topic: ProgressBar  (Letto 695 volte)

Offline alessio6181

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
ProgressBar
« il: 09 Febbraio 2012, 22:57:11 CET »
0
Salve, sono nuovo sia di Android che del Forum
volevo gentilmente una mano.
Ho un layout in cui ci sono dei pulsanti e una progress bar. Quando pigio un tasto parte il download di un file. Ho nella activity una funzione che va a prendere il file da un'area ftp e lo porta in locale, conosco la grandezza del file per dimensionare la progress bar e poi con il while vorrei, oltre che scaricare i byte, anche aumentare l'avanzamento della progress bar. Purtroppo però non riesco ad aggiornarla, o meglio lo riesco a fare da codice ma non aumenta fisicamente.
Devo per forza fare un thread??
grazie

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:ProgressBar
« Risposta #1 il: 10 Febbraio 2012, 02:21:14 CET »
0
Bhè la ProgressBar serve per informare l'utente che una qualche operazione si sta svolgendo in background...quindi in un thread parallelo...altrimenti bloccheresti la UI. Quindi si devi usare un thread...o meglio, Android mette a disposizione un particolare componente che serve proprio per eseguire operazioni in background, permettendo di aggiornare la UI, poichè in Android, solo il main thread può aggiornare la UI !

Il componente in questione è : AsyncTask | Android Developers
E qui un esempio di utilizzo dell'asynctask e di una progressbar : Android-er: ProgressBar running in AsyncTask

Offline alessio6181

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
Re:ProgressBar
« Risposta #2 il: 10 Febbraio 2012, 09:23:38 CET »
0
grazie... allora non mi rimane altro che studiarmi questa guida [medio] Introduzione ai Thread - Android Developers Italia
 :-)