Как установить прогрессбар с хронометром в андроиде?

1

У меня есть узнать, как получить прогрессбар работает с perticular задачей здесь.

Но я использую хронометр в своем приложении. И исходя из этого значения, я хочу установить ProgressBar.

Итак, как это сделать. ?

Я создал эту тему для работы. Код:

// Start lengthy operation in a background thread         
    progressThread = new Thread(new Runnable() {             
        public void run() {                 
            while (mProgressStatus < 100) {                     
                mProgressStatus = doWork();                     
                // Update the progress bar                     
                mHandler.post(new Runnable() {                         
                    public void run() {                             
                        progressBar.setProgress(mProgressStatus);                         
                    }                     
                });                 
            }             
        }         
    });

    progressThread.start();

Я знаю, что мне нужно сделать задачу, которая непрерывно возвращает данные int в progressStatus. Но как это сделать с помощью хронометра, который я не знаю. Поэтому, пожалуйста, помогите мне в этом.

Благодарю.

  • 0
    Почему я получаю отрицательный ответ на этот вопрос?
  • 0
    что не так в этом вопросе?
Показать ещё 3 комментария
Теги:
timer
android-ndk
android-widget

1 ответ

1
Лучший ответ

Ваша проблема кажется вашим методом doWork() (как вы упомянули в комментарии, что в этом методе ничего не сделано). Как вы видите прогресс прогрессаBar зависит от этого метода:

mProgressStatus = doWork();

Предположим, что ваш кронометр обновляется каждую секунду, поэтому progressBar будет заполнен, когда пройдет 100 секунд. Чтобы добиться этого, ваш метод doWork должен возвращать возрастающее значение прошедших секунд, то есть 1,2,3... 100. Но вернуть это значение недостаточно, потому что с вашим текущим кодом progressBar будет заполнен мгновенно.
Наиболее простым решением было бы:

mProgressStatus = 0;
progressThread = new Thread(new Runnable() {             
    public void run() {                 
        while (mProgressStatus < 100) {                                          
            // Update the progress bar                     
            mHandler.post(new Runnable() {                         
                public void run() {                             
                    progressBar.setProgress(mProgressStatus);                         
                }                     
            });
            mProgressStatus ++;
            android.os.SystemClock.sleep(1000); // Thread.sleep() doesn't guarantee 1000 msec sleep, it can be interrupted before               
        }             
    }         
});

progressThread.start();

Надеюсь это поможет,
Сергей.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню