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

Замена цвета background с задержкой для ячейки ListView - Android

Восстановить пароль Регистрация
 
olorin3000
2 / 2 / 1
Регистрация: 27.09.2012
Сообщений: 48
07.01.2014, 21:35     Замена цвета background с задержкой для ячейки ListView #1
Здравствуйте!
Я делаю приложение для тестов.
Собственно хочу реализовать следующие.
Есть ListView, при нажатии на ячейку если ответ правильный
меняется background ячейки на зеленый, если нет то background красный.
После этого делается пауза на 1 секунду, все ячейки возвращаются в предыдущие состояние
и загружается новая колекция для адаптера. Да используется BaseAdapter.

У меня не получается сделать замену background с задержкой.
Если не сложно или кто сталкивался с даной задачей наведите маленький
пример. Неважно на чем можно даже на button. Мне главное понять как сделать замену цвета с задержкой.
Я пробовал вариант типа:
--backgroundColor(Color.Red);
--Thread.Sleep(1000);
--backgroundColor(Color.White); // для того чтобы возвратить ячейку в прежние состояние.
Но результата никакого. Задержка идет но цвет не меняется.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
korsaj
148 / 117 / 9
Регистрация: 16.08.2013
Сообщений: 506
07.01.2014, 22:36     Замена цвета background с задержкой для ячейки ListView #2
Больше кода.
olorin3000
2 / 2 / 1
Регистрация: 27.09.2012
Сообщений: 48
07.01.2014, 23:03  [ТС]     Замена цвета background с задержкой для ячейки ListView #3
Цитата Сообщение от korsaj Посмотреть сообщение
Больше кода.
Ну вот к примеру:
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
package com.example.you;
 
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
 
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final Button btn=(Button) findViewById(R.id.button1);
        
        btn.setOnClickListener(new OnClickListener(){
 
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                
                try {
                    btn.setBackgroundColor(Color.RED);
                    Thread.sleep(1000);
                    btn.setBackgroundColor(Color.WHITE);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
            }});
    }
 
}
Почему в даном случаи кнопка не меняет цвет на красный а сразу
идет задержка и после этого меняет цвет на белый?
korsaj
148 / 117 / 9
Регистрация: 16.08.2013
Сообщений: 506
07.01.2014, 23:25     Замена цвета background с задержкой для ячейки ListView #4
Вынесите изменение цвета кнопки из try.
olorin3000
2 / 2 / 1
Регистрация: 27.09.2012
Сообщений: 48
07.01.2014, 23:42  [ТС]     Замена цвета background с задержкой для ячейки ListView #5
Цитата Сообщение от korsaj Посмотреть сообщение
Вынесите изменение цвета кнопки из try.
Не помогло.
korsaj
148 / 117 / 9
Регистрация: 16.08.2013
Сообщений: 506
07.01.2014, 23:49     Замена цвета background с задержкой для ячейки ListView #6
Код выкладывайте.
olorin3000
2 / 2 / 1
Регистрация: 27.09.2012
Сообщений: 48
08.01.2014, 00:06  [ТС]     Замена цвета background с задержкой для ячейки ListView #7
А заяем мне код выкладывать?
Я просто хочу понять в чем причина вот на этом простом примере.
korsaj
148 / 117 / 9
Регистрация: 16.08.2013
Сообщений: 506
08.01.2014, 00:27     Замена цвета background с задержкой для ячейки ListView #8
Попробовал сам. Действительно ничего не выходит. Меняет цвет только по команде после остановки. Видимо это связано с тем что командой sleep вы "замораживаете" поток приложения и соответственно в нем в течении 1 секунды ничего не выполняется. По истечении секунды поток "размораживается" довыполняется смена цвета кнопки на красный и сразу выполняется команда смены цвета на белый.

Выход - ожидание вынести в отдельный поток.

Добавлено через 9 минут
http://startandroid.ru/ru/uroki/vse-...obschenie.html
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2014, 00:36     Замена цвета background с задержкой для ячейки ListView
Еще ссылки по теме:

ListView ячейки, получить Id элемента из SQLite Android
Изменил фон для Custom ListView не работает подсветка при нажатии Android
Свои идентификаторы для элементов ListView Android
Загрузка данных из SQLite для каждого пункта ListView Android
Как раскрасить в цвета элементы ListView Android

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

Или воспользуйтесь поиском по форуму:
olorin3000
2 / 2 / 1
Регистрация: 27.09.2012
Сообщений: 48
08.01.2014, 00:36  [ТС]     Замена цвета background с задержкой для ячейки ListView #9
Спасибо большое.
Через handler действительно помогло.
Yandex
Объявления
08.01.2014, 00:36     Замена цвета background с задержкой для ячейки ListView
Ответ Создать тему
Опции темы

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