Как сделать несколько последовательных ProgressBar -ов?

Ответить
Dismirnovs
Сообщения: 4
Зарегистрирован: 09 мар 2015, 15:55

Как сделать несколько последовательных ProgressBar -ов?

Сообщение Dismirnovs » 09 июн 2015, 16:09

Добрый день, дорогие форумчане!
Хочу сделать несколько последовательно выполняющихся прогресбаров с возможностью старта и паузы выполнения.
Инициализирую их в методе oncreate помещаю в ArrayList.
И тут ключевой вопрос: Как же запустить несколько прогресбаров на последовательное выполнение?

Для случая с одним прогресбаром использую такой код но что то не могу понять как же его изменить под мою ситуацию?

Код: Выделить всё

  
start.setOnClickListener(new OnClickListener() {  
              
            @Override  
            public void onClick(View v) {  
                // TODO Auto-generated method stub  
                //?   
                handler.post(runnable);  
            }  
        });  

 Runnable runnable=new Runnable() {  
          
        @Override  
        public void run() {  
            // TODO Auto-generated method stub  
            prolength=bar.getProgress()+1;  
            bar.setProgress(prolength);  
            setTitle(String.valueOf(prolength));  
            //100,1000runnable  
            if(prolength<100)  
            {  
                handler.postDelayed(runnable, 1000);  
            }  
            //??  
            else   
            {  
                bar.setProgress(0);  
                setTitle(String.valueOf(0));  
                handler.post(runnable);  
            }  
        }  
    };  
} 


Заранее спасибо, буду рад помощи!

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Как сделать несколько последовательных ProgressBar -ов?

Сообщение klblk » 10 июн 2015, 07:45

Я бы наверное сделал ListView с кастомным адаптером на базе массива своих объектов у которых будут поля типа isProgress, progress. А в методе getView() что-то вроде:
[syntax=java]...
if(myObj.isProgress()) {
bar.setIndeterminate(false);
bar.setProgress(myObj.getProgress());
} else {
bar.setIndeterminate(true);
}
...[/syntax]
Для изменения прогресса меняются значения у myObj и вызывается notifyDataSetChanged() у адаптера (с RecyclerView вроде бы это можно сделать более деликатно).

Ответить