2017-04-26 2 views
0

Ich möchte eine Quiz-App und die Fragen sollten einen Timer von 30 Sekunden haben, danach möchte ich ein paar Sachen tun. Mit meinem Code bewegt sich die Progressbar (Kreis) einfach unendlich. Die ProgressBar sollte in 30 Sekunden von 100 auf 0 gehen.ProgressBar lädt (Android)

Main:

ProgressBar progressBar; 
int progressValue = 0; 
Handler handler = new Handler(); 
ImageView buttonA1; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.frage1); 
    getSupportActionBar().hide(); 

progressBar = (ProgressBar) findViewById(R.id.progressBar2); 
buttonA1 = (ImageView) findViewById(R.id.iVAntwort1); 

CountDownTimer myCounter; 


    progressBar.setProgress(progressValue); 
    myCounter = new CountDownTimer(30000,30000) { 
     @Override 
     public void onTick(long millisUntilFinished) { 
      Log.v("Log_tag", "Tick of Progress"+ progressValue+ millisUntilFinished); 
      progressValue ++; 
      progressBar.setProgress(progressValue); 
     } 

     @Override 
     public void onFinish() { 
     progressValue ++; 
      progressBar.setProgress(progressValue); 
     } 



    }; 
myCounter.start(); 
     } 

XML:

<ProgressBar 
    style="?android:attr/progressBarStyle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/progressBar2" 
    android:indeterminate="false" 
    android:minHeight="50dp" 
    android:minWidth="200dp" 
    android:max="1" 
    android:progress="0" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" /> 
+0

// macht unsichtbar progressBar.setVisibility (View.GONE); Entferne den progressValue ++; progressBar.setProgress (Fortschrittszahl); in onFinish Methode – sivaprakash

Antwort

0

Es zeigt unendlich, weil Sie es nicht zu stoppen sind. Ändern Sie den OnFinish() Funktion in

public void onFinish() { 
    progressValue ++; 
    progressBar.setProgress(progressValue); 
    progressBar.setVisibility(View.GONE); 
} 

Auch ich Ihnen vorschlagen, das Intervall auf 1000 Mühlen oder etwas zu senken. myCounter = new CountDownTimer(30000,1000)

Verwandte Themen