在按下时将进度栏重置为0

时间:2018-11-08 17:38:29

标签: java android progress-bar reset

我正在尝试使用进度条,例如30秒计时器。它运作良好,但是当我单击“后退”按钮时,进度条进度会继续。单击后退按钮时,无法将进度栏进度重置为0。 这是我的代码:
主要活动:

public class MainActivity extends AppCompatActivity {

public Button btnA;

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

    btnA = (Button)findViewById(R.id.btnA);
    btnA.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intentA = new Intent(MainActivity.this,SecondActivity.class);
            startActivity(intentA);
        }
    });
}
}

SecondActivity:

public class SecondActivity extends AppCompatActivity{

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

    Context context;
    float from;
    float to;
    final TextView textV;
    final ProgressBar mProgressBar;
    CountDownTimer mCountDownTimer;
    final int[] i = {0};

    textV = (TextView)findViewById(R.id.tvFinal);
    mProgressBar = (ProgressBar)findViewById(R.id.progressbar);
    mProgressBar.setProgress(i[0]);
    mCountDownTimer=new CountDownTimer(30000,1000) {

        @Override
        public void onTick(long millisUntilFinished) {
            Log.v("Log_tag", "Tick of Progress"+ i[0] + millisUntilFinished);
            i[0]++;
            mProgressBar.setProgress((int) i[0] *100/(30000/1000));

        }

        @Override
        public void onFinish() {
            i[0]++;
            mProgressBar.setProgress(100);
            textV.setText("finish");
            Intent intent = new Intent(SecondActivity.this, SecondActivity.class);
            startActivity(intent);
        }
    };
    mCountDownTimer.start();
}
}

1 个答案:

答案 0 :(得分:2)

要实现后退按钮的行为,您需要覆盖onBackPressed(),然后实现重置进度条结果的方法。

示例:

  @Override
    public void onBackPressed() {
        super.onBackPressed();
        progressBar.setProgress(0);
    }