Autore Topic: Inserimento ProgressBar o Progress Dialog  (Letto 3757 volte)

Offline tuttoilmondo

  • Utente junior
  • **
  • Post: 65
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire Z
  • Sistema operativo:
    Mac OS X 10.7
Inserimento ProgressBar o Progress Dialog
« il: 15 Gennaio 2012, 14:53:21 CET »
0
Ciao a tutti ho un activty che rispondendo alla pressione di un bottone lancia un'altra activity che visualizza una pagina web. Vorrei però inserire una progressbar o un progress dialog per avvisare l'utente che la pagina si sta caricando.

Volendo usare un progress dialog che mi sembra più facile da implementare, il codice va messo nella activity di lancio o in quella che carica la pagina ?

Grazie

Paolo
Le mie App sul market Android, Apple e Blackbarry:
Bacchiglione, Colorare, Debito Pubblico, Milano WebCam, Padova WebCam, Palermo WebCam, Venezia WebCam
Android Market
BlackBerry Store

Offline tuttoilmondo

  • Utente junior
  • **
  • Post: 65
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire Z
  • Sistema operativo:
    Mac OS X 10.7
Re:Inserimento ProgressBar o Progress Dialog
« Risposta #1 il: 15 Gennaio 2012, 15:24:07 CET »
0
Facendo delle prove mi sono risposto da solo, la metto nell'activity che carica la pagina, così ho fatto:

Codice (Java): [Seleziona]
public class Santo extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webcam);
        WebView webview = new WebView(Santo.this);
         setContentView(webview);
         webview.loadUrl("http://www.tuttoilmondo.it/app/PadovaWebCam/Santo.html");
         
         ProgressDialog dialog = ProgressDialog.show(Santo.this, "",
             "Attendere caricamento...", true);
}}

Nella mia ignoranza ho tralasciato però qualcosa, la progess compare, ma non sparisce quando la pagina si è caricata, resta ad oltranza. In effetti guardando il codice l'ho solo inserita !! Mi date una mano per il completamento?

Grazie
Le mie App sul market Android, Apple e Blackbarry:
Bacchiglione, Colorare, Debito Pubblico, Milano WebCam, Padova WebCam, Palermo WebCam, Venezia WebCam
Android Market
BlackBerry Store

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Inserimento ProgressBar o Progress Dialog
« Risposta #2 il: 15 Gennaio 2012, 17:05:53 CET »
0
Basta fare il dismiss quando non ti serve più
dismiss()
Postate il LogCat LogCat LogCat LogCat LogCat

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:Inserimento ProgressBar o Progress Dialog
« Risposta #3 il: 15 Gennaio 2012, 17:08:11 CET »
0
Se ti può essere utile quando una volta ho utilizzato una progressBar indeterminata ho fatto così:
Codice (Java): [Seleziona]
        Resources resource = getResources();
        String load = resource.getString(R.string.loading);
        String wait = resource.getString(R.string.plase_wait);
        progress = ProgressDialog.show(this, load, wait, true);
        startActivity(intent);

Nell'activity chiamata non ho utilizzato nessuna istruzione che mi cancellasse la visualizzazione della ProgressDialog. Eppure mi scompare sempre da sola.
Sei stato aiutato oppure il tuo problema è stato risolto? Allora premi il tasto THANKS E' un modo utile e carino per ringraziare chi ti è stato di aiuto.

Offline tuttoilmondo

  • Utente junior
  • **
  • Post: 65
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire Z
  • Sistema operativo:
    Mac OS X 10.7
Re:Inserimento ProgressBar o Progress Dialog
« Risposta #4 il: 15 Gennaio 2012, 17:17:59 CET »
0
Basta fare il dismiss quando non ti serve più
dismiss()

Ciao forse per te è scontato ma non lo è per me. Come inserisco nel mio codice un dismiss dopo l'avvenuto caricamento ?

Grazie

Paolo
Le mie App sul market Android, Apple e Blackbarry:
Bacchiglione, Colorare, Debito Pubblico, Milano WebCam, Padova WebCam, Palermo WebCam, Venezia WebCam
Android Market
BlackBerry Store

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Inserimento ProgressBar o Progress Dialog
« Risposta #5 il: 15 Gennaio 2012, 21:52:06 CET »
0
Devi fare il dismiss quando la pagina si é caricata, no?
Personalmente non ho mai lavorato con le WebView, ma da una ricerca veloce in rete ho trovato questo
Basta creare un oggetto WebViewClient e fare l'override del metodo onPageFinished, nel quale andrai a fare il dismiss del tuo dialog.
Postate il LogCat LogCat LogCat LogCat LogCat

Offline tuttoilmondo

  • Utente junior
  • **
  • Post: 65
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire Z
  • Sistema operativo:
    Mac OS X 10.7
Re:Inserimento ProgressBar o Progress Dialog
« Risposta #6 il: 15 Gennaio 2012, 22:46:26 CET »
0
Devi fare il dismiss quando la pagina si é caricata, no?
Personalmente non ho mai lavorato con le WebView, ma da una ricerca veloce in rete ho trovato questo
Basta creare un oggetto WebViewClient e fare l'override del metodo onPageFinished, nel quale andrai a fare il dismiss del tuo dialog.

Sarei molto felice se fossi capace di applicare quello che dici, invece sono un neofita che ha appena iniziato a programmare e non ho idea di come fare. Ho ordinato il nuovo libro di carli e dovrebbe arrivarmi domani. Tra qualche mese comprenderò quello che mi hai detto e l'applicherò.
Grazie lo stesso.

Paolo
Le mie App sul market Android, Apple e Blackbarry:
Bacchiglione, Colorare, Debito Pubblico, Milano WebCam, Padova WebCam, Palermo WebCam, Venezia WebCam
Android Market
BlackBerry Store

Offline tuttoilmondo

  • Utente junior
  • **
  • Post: 65
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire Z
  • Sistema operativo:
    Mac OS X 10.7
Re:Inserimento ProgressBar o Progress Dialog
« Risposta #7 il: 18 Gennaio 2012, 19:39:22 CET »
0
Se ti può essere utile quando una volta ho utilizzato una progressBar indeterminata ho fatto così:
Codice (Java): [Seleziona]
        Resources resource = getResources();
        String load = resource.getString(R.string.loading);
        String wait = resource.getString(R.string.plase_wait);
        progress = ProgressDialog.show(this, load, wait, true);
        startActivity(intent);

Nell'activity chiamata non ho utilizzato nessuna istruzione che mi cancellasse la visualizzazione della ProgressDialog. Eppure mi scompare sempre da sola.

Ciao ho provato ad implementare il codice che mi hai suggerito ma mi dà alcuni errori, questo è quello che ho scritto:

Codice (Java): [Seleziona]
private void startSubactivity() {
        Intent intent = new Intent(this, Santo.class);
        Resources resource = getResources();
        String load = resource.getString(R.string.loading);
        String wait = resource.getString(R.string.plase_wait);
        ProgressDialog progress = ProgressDialog.show(this, load, wait, true);
        startActivity(intent);}

Mi segnala l'errore "loading cannot be resolved or is not a field" sottolineando .loading della riga Sting load

Mi segnala l'errore "loading cannot be resolved or is not a field" sottolineando .plase_wait della riga Sting wait

Cosa ne dici ?

Grazie

Paolo
Le mie App sul market Android, Apple e Blackbarry:
Bacchiglione, Colorare, Debito Pubblico, Milano WebCam, Padova WebCam, Palermo WebCam, Venezia WebCam
Android Market
BlackBerry Store

Offline tuttoilmondo

  • Utente junior
  • **
  • Post: 65
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire Z
  • Sistema operativo:
    Mac OS X 10.7
Re:Inserimento ProgressBar o Progress Dialog
« Risposta #8 il: 18 Gennaio 2012, 20:10:11 CET »
0
Devi fare il dismiss quando la pagina si é caricata, no?
Personalmente non ho mai lavorato con le WebView, ma da una ricerca veloce in rete ho trovato questo
Basta creare un oggetto WebViewClient e fare l'override del metodo onPageFinished, nel quale andrai a fare il dismiss del tuo dialog.

Ciao per il momento rilevare il caricamento avvenuto della pagina è troppo complesso per me. Con il codice seguente ho implementato la ProgressDialog poi con il dimiss il suo annullamento, vedi codice sotto:

Codice (Java): [Seleziona]
public class Santo extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webcam);
        ProgressDialog dialog = ProgressDialog.show(Santo.this, "", "Attendere caricamento...", false);
        WebView webview = new WebView(Santo.this);
         setContentView(webview);
         webview.loadUrl("http://www.tuttoilmondo.it/app/PadovaWebCam/Santo.html");
         dialog.dismiss();}

così però il dimiss è immediato e la barra non si vede nemmeno, basterebbe implementare un attesa di 4/5 secondi. Non conosco però il codice da inserire per l'attesa, mi date un suggerimento ?

Grazie

Paolo
Le mie App sul market Android, Apple e Blackbarry:
Bacchiglione, Colorare, Debito Pubblico, Milano WebCam, Padova WebCam, Palermo WebCam, Venezia WebCam
Android Market
BlackBerry Store

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:Inserimento ProgressBar o Progress Dialog
« Risposta #9 il: 18 Gennaio 2012, 21:08:07 CET »
0
Scusami se mi permetto  :-) Però il senso di utilizzare una ProgressDialog è quello di dare un feedback all'utente in una situazione in cui tutto sembra "fermo"....ha senso temporizzare il tutto a priori? e se la pagina viene scaricata in un paio di secondi o (peggio) in 20? l'utente non capirà mai cosa sta succedendo lì sotto....
Magari prova a googolare un pò, troverai sicuramente molto materiale  ;-)

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:Inserimento ProgressBar o Progress Dialog
« Risposta #10 il: 18 Gennaio 2012, 21:37:21 CET »
0
Ciao ho provato ad implementare il codice che mi hai suggerito ma mi dà alcuni errori, questo è quello che ho scritto:

Codice (Java): [Seleziona]
private void startSubactivity() {
        Intent intent = new Intent(this, Santo.class);
        Resources resource = getResources();
        String load = resource.getString(R.string.loading);
        String wait = resource.getString(R.string.plase_wait);
        ProgressDialog progress = ProgressDialog.show(this, load, wait, true);
        startActivity(intent);}

Mi segnala l'errore "loading cannot be resolved or is not a field" sottolineando .loading della riga Sting load

Mi segnala l'errore "loading cannot be resolved or is not a field" sottolineando .plase_wait della riga Sting wait

Cosa ne dici ?

Grazie

Paolo

In pratica R.string.loading insieme a R.string.please_wait sono delle risorse XML che si trovano in RES -> VALUES -> string.xml
Basta mettere delle stringhe al loro posto e tutto funziona normale.
Sei stato aiutato oppure il tuo problema è stato risolto? Allora premi il tasto THANKS E' un modo utile e carino per ringraziare chi ti è stato di aiuto.

Offline tuttoilmondo

  • Utente junior
  • **
  • Post: 65
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire Z
  • Sistema operativo:
    Mac OS X 10.7
Re:Inserimento ProgressBar o Progress Dialog
« Risposta #11 il: 18 Gennaio 2012, 23:35:12 CET »
0
In pratica R.string.loading insieme a R.string.please_wait sono delle risorse XML che si trovano in RES -> VALUES -> string.xml
Basta mettere delle stringhe al loro posto e tutto funziona normale.

Ciao ho inserito le stringhe e risolto gli errori, in realtà quelle due stringhe non servono a nulla perchè i due contenuti posso essere inseriti direttamente tra parantesi, quindi tu scrivi tre righe e modifichi anche il file string:

Codice (Java): [Seleziona]
String load = resource.getString(R.string.loading);
String wait = resource.getString(R.string.plase_wait);
progress = ProgressDialog.show(this, load, wait, true);

Secondo me ne basta una:

Codice (Java): [Seleziona]
progress = ProgressDialog.show(Santo.this, "Loading", "Please wait", false);
Sbaglio ?

In ogni caso non funziona come mi aspettavo. Devo modificare la riga così:
Codice (Java): [Seleziona]
ProgressDialog progress = ProgressDialog.show(Santo.this, "Loading", "Please wait", false);
Se queste istruzioni le metto nella activity che lancia la subactivity con la pagina web di cui devo attendere il caricamento, quando si apre la subactivity con la pagina web, non compare nessuna progress dialog, clicco sul tasto return per ritornare alla activity principale e compare la progress dialog. Non capisco perchè ma non serve a niente così. Messa comuque nella activity principale non accetta ..(Santo.this, "Loa.... ma solo ..(this, "Loa...

Se la metto nella subactivity, invece la progress dialog si attiva subito all'apetura ma non spariesce mai.

Qualche idea ?

Ciao
« Ultima modifica: 19 Gennaio 2012, 00:15:43 CET da tuttoilmondo »
Le mie App sul market Android, Apple e Blackbarry:
Bacchiglione, Colorare, Debito Pubblico, Milano WebCam, Padova WebCam, Palermo WebCam, Venezia WebCam
Android Market
BlackBerry Store

Offline tuttoilmondo

  • Utente junior
  • **
  • Post: 65
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire Z
  • Sistema operativo:
    Mac OS X 10.7
Re:Inserimento ProgressBar o Progress Dialog
« Risposta #12 il: 19 Gennaio 2012, 19:23:41 CET »
0
Scusami se mi permetto  :-) Però il senso di utilizzare una ProgressDialog è quello di dare un feedback all'utente in una situazione in cui tutto sembra "fermo"....ha senso temporizzare il tutto a priori? e se la pagina viene scaricata in un paio di secondi o (peggio) in 20? l'utente non capirà mai cosa sta succedendo lì sotto....
Magari prova a googolare un pò, troverai sicuramente molto materiale  ;-)

Ciao sono giorni che cerco, ho trovato molto materiale ma mi manca la competenza per riuscire ad implementarlo nel mio codice. Questa è l'ultima implementazione che ho intenzione di inserire nella mia App perchè tutto il resto mi sembra già di buon livello. Ho comprato la nuova edizione del libro del Carli e sto studiando, vorrei non dover aspettare tanto prima di completare la mia App, è già sul market da tempo e il non aver alcun controllo sull'attesa di caricamento, la rende difettosa.

Visto che capire quando una pagine web e caricata è così difficile, mi accontento di un attesa generica di qualche secondo, almeno chi la usa non crede che non funzioni, solo perchè non ha la pazienza di aspettare qualche secondo!

Tutto qui.

Ciao

Paolo
« Ultima modifica: 19 Gennaio 2012, 19:26:05 CET da tuttoilmondo »
Le mie App sul market Android, Apple e Blackbarry:
Bacchiglione, Colorare, Debito Pubblico, Milano WebCam, Padova WebCam, Palermo WebCam, Venezia WebCam
Android Market
BlackBerry Store

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:Inserimento ProgressBar o Progress Dialog
« Risposta #13 il: 20 Gennaio 2012, 00:21:08 CET »
0
Ciao ho inserito le stringhe e risolto gli errori, in realtà quelle due stringhe non servono a nulla perchè i due contenuti posso essere inseriti direttamente tra parantesi, quindi tu scrivi tre righe e modifichi anche il file string:

Codice (Java): [Seleziona]
String load = resource.getString(R.string.loading);
String wait = resource.getString(R.string.plase_wait);
progress = ProgressDialog.show(this, load, wait, true);

Secondo me ne basta una:

Codice (Java): [Seleziona]
progress = ProgressDialog.show(Santo.this, "Loading", "Please wait", false);
Sbaglio ?


Diciamo che non sbagli. Però io uso quella tecnica delle R.string.risorsa perchè mi piace rendere le applicazioni Android internazionalizzabili :)

Poi Santo.this deve essere il nome dell'activity che lancia la ProgressDialog.
Se premendo il tasto back nella subActivity ti ricompare la ProgressDialog nell'onResume() dovresti fare un controllo: if (ProgressDialog.isShowing()  progressDialog.dismiss()
Sei stato aiutato oppure il tuo problema è stato risolto? Allora premi il tasto THANKS E' un modo utile e carino per ringraziare chi ti è stato di aiuto.

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:Inserimento ProgressBar o Progress Dialog
« Risposta #14 il: 20 Gennaio 2012, 01:57:45 CET »
0
Hai un app sul Market da tempo, ma i consigli che ti sono stati dati nel topic sono troppo complessi per te ? Non prenderla male, ma credo che ti convenga studiare la programmazione Java prima di cimentarti con Android, altrimenti sarà un "copia e incolla" di codice per te incomprensibile.