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

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

Войти
Регистрация
Восстановить пароль
 
hell_hauptwerk
0 / 0 / 1
Регистрация: 23.03.2015
Сообщений: 84
#1

Слип работает не так как нужно - Программирование Android

21.12.2015, 12:22. Просмотров 189. Ответов 5
Метки нет (Все метки)

В чем проблема, когда слип отрабатывает кнопка висит в состоянии нажатия а не после того как все изменения прошли.
Я видимо не знаю как работает точно эта система, но такой вопрос, где мне поставить слип что бы он отрабатывал сразу после нажатия клавиши и всех изменений?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    @Override
    public void onClick(View v) {
            switch (v.getId()) {
            case R.id.button1:
                button1.setEnabled(false);
                button1.setText("X");
                try {
                    Thread.sleep(520);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                break;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2015, 12:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Слип работает не так как нужно (Программирование Android):

Button setPressed работает не так как задумано - Программирование Android
Добрый день! подскажите почему если я делаю две кнопки. Loader1 = (Button) findViewById(R.id.bt_Loader1); Loader2 = (Button)...

Как работает внедрение зависимостей, и зачем нужно его использовать? - Программирование Android
Как работает внедрение зависимостей? И в каких ситуациях, зачем нужно его использовать?Например если я объявил поле как @Inject то как к...

setprecision() не работает, или работает не так как нужно - C++
cout << setw(5) << "X=" << setprecision(2) << X; cout << setw(20) << "X=" << setprecision(0)<< X << endl; cout << setw(5) << "Y=" <<...

Скидка не работает так как нужно - Delphi
Написал простейший код для скидки, то есть если сумма равно только то, то скидка составляет столько то процентов. В общем если у меня...

rand() работает не так как нужно - C++
Запускается n потоковых функций, каждый из них приостанавливается во время своего выполнения, а в главное программе должен перезапускаться....

Функция не работает так, как нужно - C++
Вот задание: В заданном одномерном массиве поменять местами соседние элементы, стоящие на чётных местах, с элементами, стоящими на...

5
Pablito
2499 / 1983 / 618
Регистрация: 12.05.2014
Сообщений: 6,925
Завершенные тесты: 1
21.12.2015, 12:43 #2
нельзя просто так взять и слипнуть основной поток приложения, обычно такие вещи делаются
- либо в отдельном потоке, если там долгоиграющие операции
- либо выполняют отложенное действие
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.button1:
                final Button button = (Button) v;
                button.setEnabled(false);
                button.setText("X");
 
                button.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        button.setEnabled(true);
                        button.setText("lol");
                    }
                }, 520);
                break;
        }
    }
0
hell_hauptwerk
0 / 0 / 1
Регистрация: 23.03.2015
Сообщений: 84
21.12.2015, 13:49  [ТС] #3
Хмм, ща попробую

Добавлено через 10 минут
Ну допустим так, а можно ли таким образом отсрочить функцию resetfields?
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
static  void whoisvictories(Activity a) {
    SpotVictory sv = tiktakparser.whovictories();
        if( sv.victX){
        Toast toast = Toast.makeText(a.getApplicationContext(), 
                   "Victory X", Toast.LENGTH_SHORT); 
                toast.show(); 
 
                tiktakparser.resetfields(a);//вот эту функцию надо запустить через секунду, но раз слип не годиться, тогда как?
                MainActivity.flag = false;
        }
        else if( sv.victY )
        {
            Toast toast = Toast.makeText(a.getApplicationContext(), 
                       "Victory Y", Toast.LENGTH_SHORT); 
                    toast.show(); 
                    
                    tiktakparser.resetfields(a);//вот эту функцию надо запустить через секунду, но раз слип не годиться, тогда как?
                    MainActivity.flag = false;
        }
        else if(sv.draw){
            Toast toast = Toast.makeText(a.getApplicationContext(), 
                       "Draw", Toast.LENGTH_SHORT); 
                    toast.show(); 
                    
                    tiktakparser.resetfields(a);//вот эту функцию надо запустить через секунду, но раз слип не годиться, тогда как?
                    MainActivity.flag = false;
        }
    }
0
Pablito
2499 / 1983 / 618
Регистрация: 12.05.2014
Сообщений: 6,925
Завершенные тесты: 1
21.12.2015, 13:53 #4
во-первых
запускать с отсрочкой можно десятком способов, например с помощью Timer и TimerTask
или просто стартовать отдельный поток со слипом (тупое решение)
0
hell_hauptwerk
0 / 0 / 1
Регистрация: 23.03.2015
Сообщений: 84
21.12.2015, 14:29  [ТС] #5
Хорошо, сейчас попробую

Добавлено через 33 минуты
Короч беда ошибки летят, забил на эту идею
0
Pablito
2499 / 1983 / 618
Регистрация: 12.05.2014
Сообщений: 6,925
Завершенные тесты: 1
21.12.2015, 14:30 #6
правильно, монтажники и токари тоже нужны стране
0
21.12.2015, 14:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2015, 14:30
Привет! Вот еще темы с ответами:

Target работает не так как нужно - JavaScript
<div> <div class="main"> <div><img></div> <div><img></div> <div><img></div> </div> </div> Вот...

Программа работает не совсем так, как нужно - Java SE
import java.io.*; public class Pr2{ public static void main(String args) throws FileNotFoundException,...

Событие Shown работает не так как нужно - C#
Повесил событие private void Form1_Shown(object sender, EventArgs e) Но оно работает не так как нужно. Суть заключается в том что когда...

NetworkStream.DataAvailable работает не так как нужно! - C#
try { byte bytes = new byte; int i = 0; do { ...


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

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

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