• Как заставить TextView работать только с одним таймером?

    Я бы на вашем месте так бы не делал, но ладно:

    1)Зачем задаёте текст у TextView в таймере?Это нарушает принцип Деметры и абстракцию.Просто делаем переменную currentTime в интерфейсе класса и создаём геттер к нему:

    public class TimerClass extends CountDownTimer {
        public String getCurrentTime() {
            return currentTime;
        }
    
        private String currentTime;
    
        public TimerClass(long milliFuture, long interval) {
            super(milliFuture, interval);
        }
    
        @Override
        public void onTick(long millisUntilFinished) {
            long millis = millisUntilFinished;
            String hhmmss = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis),
                    TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
                    TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
            currentTime = hhmmss;
        }
    
        @Override
        public void onFinish() {
            currentTime = "Completed";
        }
    }


    2)Теперь в классе активности создаём метод runTimer() с Handler, который будет
    обновлять текст нашего TextView:

    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
        TextView mTimer;
        Button startButton, pauseButton;
        int timeToEnd = 25000;
        final TimerClass timer = new TimerClass(timeToEnd, 1000);
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            mTimer = (TextView) findViewById(R.id.tv);
            startButton = (Button) findViewById(R.id.startButton);
            pauseButton = (Button) findViewById(R.id.pauseButton);
            startButton.setOnClickListener(this);
            pauseButton.setOnClickListener(this);
            runTimer();
        }
    
        @Override
        public void onClick(View v) {
    
            switch (v.getId()) {
                case R.id.startButton:
                    startButton.setOnClickListener(this);
                    timer.start();
                    break;
                case R.id.pauseButton:
                    pauseButton.setOnClickListener(this);
                    timer.cancel();
            }
        }
    
        private void runTimer() {
    
    
            final Handler handler = new Handler();
            handler.post(new Runnable() {
                @Override
                public void run() {
    
                    mTimer.setText(timer.getCurrentTime());
                    handler.post(this);
                }
            });
        }
    
    }


    P.s
    Очень костлявая реализация.Я бы сделал по-другому.
    Ответ написан
    8 комментариев
  • Можно ли работать на Западе в сфере IT без диплома?

    XXX
    @XXX
    Решение где-то рядом
    Возможно ли будет работать за границей(Европа, США) в сфере IT, но без диплома в сфере IT (с дипломом менеджера), при наличии качественных знаний, полученных самостоятельно?
    Можно, но все зависит от человека и от выбранной страны. С дипломом проще получить визу, проще устроится на работу, но как Вы будете работать диплом не гарантирует. Есть масса примеров людей успешно работающих в IT, которые начинали с нуля, без диплома и без опыта работы. Раздолбаев с дипломами тоже полно.

    Вот Вам пример с история мегамозга, девушка из Одессы, без опыта работы, без диплома, со слабым английским смогла устроится на работу в Норвегии и сейчас успешно работает сетевым инженером.
    Ответ написан
    2 комментария