сбросить индикатор на 0 при нажатии - PullRequest
0 голосов
/ 08 ноября 2018

Я пытаюсь использовать прогрессбар как таймер на 30 секунд. Это работает хорошо, но когда я нажимаю кнопку «Назад», прогресс прогресс продолжается. Я не могу сбросить прогресс выполнения до 0, когда я нажимаю кнопку. Вот мой код:
MainAcitivty:

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 голосов
/ 08 ноября 2018

для реализации поведения кнопки «назад» необходимо переопределить onBackPressed(), а затем реализовать метод для сброса результата индикатора выполнения.

Пример:

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