我想做一个测验应用程序,问题应该有30秒的计时器,之后我想做一些事情。 使用我的代码,Progressbar(圆圈)只是移动无限。 ProgressBar应该在30秒内从100变为0。
主:
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 :(得分:0)
它无限展示,因为你没有阻止它。将onFinish()函数更改为
public void onFinish() {
progressValue ++;
progressBar.setProgress(progressValue);
progressBar.setVisibility(View.GONE);
}
另外,我建议你将间隔降低到1000毫克左右。 myCounter = new CountDownTimer(30000,1000)