Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 44, средняя оценка - 4.91
Ki Oku
0 / 0 / 0
Регистрация: 17.02.2012
Сообщений: 19
#1

Пауза в цикле - Программирование Android

21.03.2012, 16:21. Просмотров 5707. Ответов 9
Метки нет (Все метки)

Народ, научите пожалуйста как сделать паузу в цикле... А то бьюсь бьюсь и ничего не выходит((
Не получаеца сделать паузу после каждой итерации цикла.
Выходит только пауза на весь цикл, и мгновенное выполнение всех итераций(

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package dice2.kioku;
 
import java.util.Random;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Button;
 
public class Dice2Activity extends Activity {
        private Random rnd ; 
        private Button dice1;
        private Button dice2;
        
        @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
             
        rnd = new Random();
        dice1 = (Button) findViewById(R.id.button1);
        dice2 = (Button) findViewById(R.id.button2); 
        }      
        
        private void setCaptions() throws InterruptedException {
            
        for (int i = 1; i <= 10;  i++) {
//              Thread.sleep(100);          //попытка сделать паузу
 
        int rndDice1 = rnd.nextInt(6)+1;
        int rndDice2 = rnd.nextInt(6)+1;
                    
        TextView myTextView = (TextView) findViewById(R.id.myText);
        myTextView.setText ("Dice1 = " + rndDice1 + "   Dice2 = " + rndDice2 + "   i = " + i);
 
            if (rndDice1 == 1) {
                    dice1.setBackgroundResource(R.drawable.diceside1);
                        }
                        else {
                        if (rndDice1 == 2)
                        dice1.setBackgroundResource(R.drawable.diceside2);
                
                            else {
                            if (rndDice1 == 3)
                            dice1.setBackgroundResource(R.drawable.diceside3);
                        
                                else {
                                if (rndDice1 == 4)
                                dice1.setBackgroundResource(R.drawable.diceside4);
                                             
                                    else {
                                    if (rndDice1 == 5)
                                    dice1.setBackgroundResource(R.drawable.diceside5);
                                          
                                        else {
                                        if (rndDice1 == 6)
                                        dice1.setBackgroundResource(R.drawable.diceside6);
                                        }
                                    }
                                }
                            }
                        }
                   
                if (rndDice2 == 1) {
                    dice2.setBackgroundResource(R.drawable.diceside1);
                    }
                    else {
                    if (rndDice2 == 2)
                    dice2.setBackgroundResource(R.drawable.diceside2);
      
                        else {
                        if (rndDice2 == 3)
                        dice2.setBackgroundResource(R.drawable.diceside3);
                    
                            else {
                            if (rndDice2 == 4)
                            dice2.setBackgroundResource(R.drawable.diceside4);
                                         
                                else {
                                if (rndDice2 == 5)
                                dice2.setBackgroundResource(R.drawable.diceside5);
                                      
                                    else {
                                    if (rndDice2 == 6)
                                    dice2.setBackgroundResource(R.drawable.diceside6);
                                    }
                                }
                            }
                        }
                    }
                
                
                
                
        
            } 
            } 
        
        
        public void button1_Click(View v) throws InterruptedException {
                setCaptions();             
        }
        
        @Override
        protected void onDestroy() {
                rnd = null;
                super.onDestroy();
        }
 
        @Override
        protected void onPause() {
                rnd = null;
                super.onPause();
        }
 
        @Override
        protected void onResume() {
                rnd = new Random();
                super.onResume();
        }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2012, 16:21     Пауза в цикле
Посмотрите здесь:

Пауза в запросах - Программирование Android
Добрый день Делаю клиент-серверное приложение. Есть такая ситуация: клиент (на Android) должен опрашивать сервер (сейчас на Windows, в...

Пауза в обрисовке OpenGL - Программирование Android
Привет всем. Я нарисовал куб, который вращается движение пальца, запустил его, но он постоянно перерисовывается. Как сделать так, чтобы он...

Таймер. Кнопка "Пауза" - Программирование Android
Вобщем, решил попробовать сделать таймер, нашел статью, вроде все получилось, но есть одно НО. Таймер тикает, нажимаю на стоп,...

Join в цикле while - Программирование Android
В уроке 141 startandroid.ru есть код: while (retry) { try { drawThread.join(); retry = false; ...

О жизненном цикле приложения - Программирование Android
Вроде бы столько уже сказано о жизненном цикле приложения Андроид, что и вопросов вроде не должно остаться :) Но вот столкнулся с...

Перебор id ресурсов в цикле - Программирование Android
Добрый день, В layout расположены 20 кнопок, каждая из которых, естественно, имеет собственный id. Эти id отличаются только числовым...

CountDownTimer запуск в цикле - Программирование Android
У меня есть класс где я реализовал таймер: package com.lineup.intervaltimer; import android.os.CountDownTimer; public class...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mutagen
2554 / 2227 / 72
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
21.03.2012, 16:31     Пауза в цикле #2
Прочитал ? Пауза в цикле
Ki Oku
0 / 0 / 0
Регистрация: 17.02.2012
Сообщений: 19
21.03.2012, 17:02  [ТС]     Пауза в цикле #3
Так точно! Спасибо.
Пытаюсь осознать

ЗЫЖ Тяжко) аглицкий будь он не ладен) Но все равно попробую понять

Добавлено через 24 минуты
После попытки применить тот буржуйский опыт ничего не выходит почему то(
приложение компилируеца, выполняеца...

при нажатии на кнопку (кубик) - вылетает с ошибкой(
RequiemMass
89 / 89 / 1
Регистрация: 06.01.2012
Сообщений: 394
21.03.2012, 17:09     Пауза в цикле #4
Используйте Swtich вместо кучи if-ов. А в вашем случае нельзя использовать Timer?
Ki Oku
0 / 0 / 0
Регистрация: 17.02.2012
Сообщений: 19
21.03.2012, 17:13  [ТС]     Пауза в цикле #5
Цитата Сообщение от RequiemMass Посмотреть сообщение
Используйте Swtich вместо кучи if-ов. А в вашем случае нельзя использовать Timer?
Да конечно... If переделаю на switch...

Нащот timer - к сожалению не знаю что это)
Но задача такая - при выполнении цикла хотелось бы видеть отображение на экране промежуточных итераций (какбы своеобразная чтоли "анимация" броска кости)
RequiemMass
89 / 89 / 1
Регистрация: 06.01.2012
Сообщений: 394
21.03.2012, 18:19     Пауза в цикле #6
Насчёт таймера я чо погорячился, всё равно придётся реализовывать многопоточность
Ki Oku
0 / 0 / 0
Регистрация: 17.02.2012
Сообщений: 19
21.03.2012, 20:35  [ТС]     Пауза в цикле #7
не получаеца почему-то эту самую многопоточность реализовать(
целый день мучался сегодня...
и коллеги с форума помогали...
но не выходит чота каменный цветок...
efirist
2 / 2 / 0
Регистрация: 23.03.2012
Сообщений: 20
24.03.2012, 02:05     Пауза в цикле #8
в sleep увеличь 100 на большее значение. если не устраивает то надо:
в папке res проекта сделать папку аnim(res/аnim ) создать там файл kuku.xml и ввести
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="utf-8"?>
<аnimаtion-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false" > //  долгоиграющий
    <item
        android:drawable="@drawable/risunok1"
        android:duration="100" />
    <item
        android:drawable="@drawable/risunok2"
        android:duration="100" />
 <item
        android:drawable="@drawable/risunok3"
        android:duration="100" />
 <item
        android:drawable="@drawable/risunok4"
        android:duration="100" />
<item
        android:drawable="@drawable/risunok5"
        android:duration="100" />
</аnimаtion-list>
рисунки все в drawable,
далее
Java
1
2
3
4
5
6
7
Button kuku1 = (Button) findViewById(R.id.buton1);
kuku1.setBackgroundResource(R.аnim.kuku);
АnimаtionDrаwаble kuku1Animation = (АnimаtionDrаwаble) kuku1.getBackground();
kuku1.post(new Runnable(){
        public void run(){
             kuku1Аnimаtion.start();
        });
надеюсь это уж поможет
Ki Oku
0 / 0 / 0
Регистрация: 17.02.2012
Сообщений: 19
25.03.2012, 01:03  [ТС]     Пауза в цикле #9
это конечно поможет...
но как быть если в цикле работаем не с изображением? как его (цикл) замедлить если допустим просто выводим текстовые данные в цикле?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2012, 10:16     Пауза в цикле
Еще ссылки по теме:

Выполнение функции в цикле или ? - Программирование Android
Приветствую ребята! Работаю с веб - сервисом. Есть ListView (туда получаю список объектов): Мне необходимо реализовать...

Пройтись по всем editText в цикле - Программирование Android
Как пройтись по всем editText в цикле?

Обращение к различными наименованиям в цикле - Программирование Android
Как можно написать динамическую выборку изображений в цикле, чтобы избегать подобных конструкций? imgArray = (ImageView)...

Динамическое создание кнопок в цикле (Android) - Программирование Android
создаю кнопки по циклу void show(){ public LinearLayout show; setContentView(R.layout.show_test); show =...

Как мне обратиться к кнопкам в цикле? - Программирование Android
Прошу прощения, это наверно глупый вопрос, но я даже не знаю какой запрос ввести в гугл. У меня несколько кнопок btn1, btn2, btn3...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
hellslade
4 / 4 / 0
Регистрация: 06.04.2012
Сообщений: 20
06.04.2012, 10:16     Пауза в цикле #10
А почему бы не использовать AsyncTask? Там есть замечательный метод doInBackground, который сделает всю работу. А если в нем вызвать publishProgress и переопределить onProgressUpdate, то можно весь прогресс показывать в UI потоке.
Yandex
Объявления
06.04.2012, 10:16     Пауза в цикле
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru