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

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

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

Некорректно работает поток в Activity - Программирование Android

15.09.2013, 13:28. Просмотров 311. Ответов 1
Метки нет (Все метки)

Что неправильно в данном коде? Когда я начинаю вводить текст в EditText, приложение зависает. Думаю Вам понятно, что делает данный код, Если EditText постой, кнопка неактивна, и наоборот.
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
protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.x3);
        View b = findViewById(R.id.x3B);
        b.setOnClickListener(this);
        Thread t = new Thread(new Runnable()
        {
              public void run()
              {
                  EditText ed11 = (EditText) findViewById(R.id.ed11);
                  Button but = (Button) findViewById(R.id.x3sarrusB);
                  
                  while(true)
                  {
                      if(ed11.length() == 0)
                          but.setEnabled(false);
                      else
                          but.setEnabled(true);
                  }
              }
            });
            t.start();
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2013, 13:28     Некорректно работает поток в Activity
Посмотрите здесь:

Некорректно работает таймер - Программирование Android
Здравствуйте! Написал для себя мелкое приложение в котором есть таймер, кнопка которая его останавливает и запускает, кнопка которая...

Activity - Программирование Android
Интересует вопрос, как это реализовывается. 1. А именно при свапе влево/вправо или при непосредственном выборе "Люди", "Записи",...

Разметка activity - Программирование Android
Здравствуйте. У меня в активити присутствует webView, за ним - listView и внизу кнопки для навигации. Т.к. webView используется не всегда я...

Fragments и Activity - Программирование Android
Есть приложение некоего калькулятора, в котором есть activity_main.xml, где реализованы кнопки и клас MainActivity.java, в котором...

Два Activity - Программирование Android
Здравствуйте! У меня есть в приложении два Activity. Одно, сама программа, на базе которой написан весь функционал приложения. Вторая,...

Basic Activity - Программирование Android
В уже существующем проекте, создаю новую активность - Basic Activity. Предком указываю - MainActivity, которая уже создана. Открываю...

Приостановка Activity - Программирование Android
Нужно при открытие приложения , задержать на экране картинку, предположим на 3 секунды. Как можно это сделать и какой способ самый...

Переключение между Activity - Программирование Android
Здравствуйте, в Android Studio есть шаблон Tabbed Activity, в котором страницы перелистываются свайпами. Так вот, можно ли к каждой...

Самопроизвольно пересоздается Activity - Программирование Android
Всем привет! Есть две активити: ActivityOne и ActivityTwo. Из ActivityOne по нажатию на кнопку создаю ActivityTwo. Решил проконтролировать...

Возврат на предыдущую Activity - Программирование Android
Ребят, не получается вернуться на предыдущую активность. В классах каждой активити прописал @Override public void onBackPressed()...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
haribo
41 / 41 / 3
Регистрация: 26.05.2013
Сообщений: 160
15.09.2013, 15:06     Некорректно работает поток в Activity #2
Не надо так писать код.
Есть такой паттерн программирования Observer (Слушатель).
С учетом его применения и возможностей android sdk, можно сделать следующим образом:
Пишем метод проверки наличия текста:
Java
1
2
3
private boolean checkEditText(EditText edit) {
    return edit.getText().length() == 0;
}
Далее пишем метод обновления кнопки:
Java
1
2
3
4
5
6
void updateButtonState() {
    if (checkEditText(edit1) && checkEditText(edit2)) {
        button.setEnabled(false);
    } else { 
        button.setEnabled(true);
    }
Далее Оверрайдим следующие методы для EditText и пишем в них необходимую логику.
Java
1
2
3
beforeTextChanged(CharSequence s, int start, int count, int after)
onTextChanged(CharSequence s, int start, int before, int count)
afterTextChanged(Editable s)
Если нужно расписать логику для этих методов - обращайся.
Yandex
Объявления
15.09.2013, 15:06     Некорректно работает поток в Activity
Ответ Создать тему
Опции темы

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