2012-09-21 5 views
0

J'utilise this Tutorial pour créer une barre de progression personnalisée et cela fonctionne.démarrer une nouvelle activité sur la barre de progression 100%

Mais je veux commencer une nouvelle activité lorsque la barre de progression passe à 100%.

Quelqu'un peut-il aider à mettre en place un nouveau code d'activité au bon endroit?

+0

le code postal où vous la mise à jour des progrès de la barre de progression. –

+0

source complète est ici: http://www.jagsaund.com/blog/2011/11/6/customizing-your-progress-bar-part-one.html J'utilise ce code –

+0

Je vous suggère de commencer la nouvelle activité quand l'ancien finit. Cela pourrait ne pas être quand le PB = 100% –

Répondre

4

Vous pouvez vérifier si les progrès ont atteint le maximum possible tout en vous configurez, comme ceci:

@Override 
    public synchronized void setProgress(int progress) { 
    super.setProgress(progress); 

    // the setProgress super will not change the details of the progress bar 
    // anymore so we need to force an update to redraw the progress bar 
    invalidate(); 

    if(progress >= getMax()) { 
     Intent intent.... 
    } 
    } 
1

Vous pouvez appeler le fil de la minuterie de fonction OnContinue et définir l'intention de l'activité suivante et enregistrer la nom de l'activité dans le fichier manifeste.

@Override 
    public void onCreate(final Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.progress); 
    mProgressBar = (ProgressBar)findViewById(R.id.adprogress_progressBar); 
    final Thread timerThread = new Thread() { 
     @Override 
      public void run() { 
      mbActive = true; 
      try { 
       int waited = 0; 
        while(mbActive && (waited < TIMER_RUNTIME)) { 
         sleep(200); 
         if(mbActive) { 
          waited += 200; 
          updateProgress(waited); 
         } 
        } 
      } catch(InterruptedException e) { 
     } finally { 
       onContinue(); 
     } 
     } 
    }; 
    timerThread.start(); 
} 
@Override 
public void onDestroy() { 
    super.onDestroy(); 
} 
public void updateProgress(final int timePassed) { 
    if(null != mProgressBar) { 
     final int progress = mProgressBar.getMax() * timePassed/TIMER_RUNTIME; 
     mProgressBar.setProgress(progress); 
    } 
} 

public void onContinue() { 
    Intent intd=new Intent(this,MainActivity.class); 
    startActivity(intd); 
    } 
0

Try this ...

new Thread(new Runnable() { 
    public void run() { 
     while (progressStatus < 100) { 
      progressStatus += 5; 
      // Update the progress bar and display the current value in the text view 
      handler.post(new Runnable() { 
       public void run() { 
        progressBar.setProgress(progressStatus); 
        textView.setText("Loading "+progressStatus+"/"+progressBar.getMax()); 
       } 
      }); 
      try { 
       // Sleep for 200 milliseconds. Just to display the progress slowly 
       Thread.sleep(200); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
    } 

    **Intent intent = new Intent(Main_Activity.this, Send_Email.class); 
     startActivity(intent);** 
    } 
}).start(); 
Questions connexes