Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.54/35: Рейтинг темы: голосов - 35, средняя оценка - 4.54
Ki Oku
0 / 0 / 0
Регистрация: 17.02.2012
Сообщений: 19
1

Пауза в цикле

21.03.2012, 16:21. Просмотров 6504. Ответов 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();
        }
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2012, 16:21
Ответы с готовыми решениями:

Пауза в Android
Добрый день! Идея такова: пари нажатии на кнопку запускается анимация,...

Пауза в запросах
Добрый день Делаю клиент-серверное приложение. Есть такая ситуация: клиент...

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

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

Join в цикле while
В уроке 141 startandroid.ru есть код: while (retry) { try { ...

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

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

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

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

Нащот timer - к сожалению не знаю что это)
Но задача такая - при выполнении цикла хотелось бы видеть отображение на экране промежуточных итераций (какбы своеобразная чтоли "анимация" броска кости)
0
RequiemMass
91 / 91 / 18
Регистрация: 06.01.2012
Сообщений: 394
21.03.2012, 18:19 6
Насчёт таймера я чо погорячился, всё равно придётся реализовывать многопоточность
0
Ki Oku
0 / 0 / 0
Регистрация: 17.02.2012
Сообщений: 19
21.03.2012, 20:35  [ТС] 7
не получаеца почему-то эту самую многопоточность реализовать(
целый день мучался сегодня...
и коллеги с форума помогали...
но не выходит чота каменный цветок...
0
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();
        });
надеюсь это уж поможет
0
Ki Oku
0 / 0 / 0
Регистрация: 17.02.2012
Сообщений: 19
25.03.2012, 01:03  [ТС] 9
это конечно поможет...
но как быть если в цикле работаем не с изображением? как его (цикл) замедлить если допустим просто выводим текстовые данные в цикле?
0
hellslade
4 / 4 / 0
Регистрация: 06.04.2012
Сообщений: 20
06.04.2012, 10:16 10
А почему бы не использовать AsyncTask? Там есть замечательный метод doInBackground, который сделает всю работу. А если в нем вызвать publishProgress и переопределить onProgressUpdate, то можно весь прогресс показывать в UI потоке.
0
06.04.2012, 10:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2012, 10:16

О жизненном цикле приложения
Вроде бы столько уже сказано о жизненном цикле приложения Андроид, что и...

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

Обработка событий в цикле
Здравствуйте! Есть массив параметров ArrayList&lt;int&gt; params = new...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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