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

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

Войти
Регистрация
Восстановить пароль
 
Shamsik
-42 / 17 / 5
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
#1

Button (disabled/enable) - Программирование Android

19.03.2016, 11:22. Просмотров 338. Ответов 12
Метки нет (Все метки)

Добрый день такая пробема.

Мне нужно к примеру если в input поле введен текст то сделать кнопку доступной если пусто то disabled

я в принципе сделал но он что та не работает

Java
1
2
3
4
5
6
7
8
9
inputFullName = (EditText) findViewById(R.id.name);
btnRegister = (Button) findViewById(R.id.btnRegister);
 
    if(inputFullName.length() > 0) {
        btnRegister.setEnabled(true);
    }else
    {
        btnRegister.setEnabled(false);
    }
помогите пожалуйста в чем проблема
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2016, 11:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Button (disabled/enable) (Программирование Android):

Как в Android положить один объект (button) на другой (button)? - Программирование Android
Скажите, как можно положить один объект на другой, так что бы они оба были кликабельными? У менять есть две кнопки примыкающие друг к...

RelativeLayout + Button - Программирование Android
Народ как лучше делать разметку в xml Есть RelativeLayout (с картинкой в background) и на нем надо расположить Button, в определенном...

Canvas и Button - Программирование Android
можно ли в канвасе на холсте разместить view-элементы? кнопки к примеру или textview.

Массив button - Программирование Android
Здравствуйте! У меня на xml-форме есть семь кнопок, как мне их в коде определить как массив с 7-ю элементами, чтобы я мог обрабатывать их...

Button вызов - Программирование Android
Народ, мне нужно сделать кнопку, которая при нажатии совершает вызов. в main.xml кнопку добавил, а в MainActivity не могу додуматься что...

Like Button с использованием VK API - Программирование Android
Добрый день всем! Проблема в том что натыкаюсь на куча статей с использованием facebook api для реализации кнопки лайк на экране...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
19.03.2016, 11:39 #2
Цитата Сообщение от Shamsik Посмотреть сообщение
но он что та не работает
внешне - правильно...
1) какую ошибку выдает? не перепутал липараметры/методы?
2) если ошибку не выдает, то срабатывает ли этот код в принципе??? он должен вызываться при изменении текстового поля...
Vladimir93
36 / 36 / 4
Регистрация: 28.06.2015
Сообщений: 153
19.03.2016, 12:37 #3
Так и не будет. TextWatcher нужно повесить.
http://stackoverflow.com/questions/8...ass-in-android
Pablito
2473 / 1918 / 595
Регистрация: 12.05.2014
Сообщений: 6,742
Завершенные тесты: 1
19.03.2016, 13:07 #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        inputFullName = (EditText) findViewById(R.id.name);
        btnRegister = (Button) findViewById(R.id.btnRegister);
        if (inputFullName.getText().length() == 0) btnRegister.setEnabled(false);
 
        inputFullName.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }
 
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            }
 
            @Override
            public void afterTextChanged(Editable s) {
                if (s.length() > 0) btnRegister.setEnabled(true);
                else btnRegister.setEnabled(false);
            }
        });
Shamsik
-42 / 17 / 5
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
19.03.2016, 13:59  [ТС] #5
Спасибо все отлично работает.

Добавлено через 30 минут
Еще такой небольшой нюанс а как эту функцию использовать для 2-3 полей.

К примеру 2 input поля пусты сделать кнопку Disabled
Pablito
2473 / 1918 / 595
Регистрация: 12.05.2014
Сообщений: 6,742
Завершенные тесты: 1
19.03.2016, 14:00 #6
что, вообще никаких своих мыслей?
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
19.03.2016, 14:16 #7
Цитата Сообщение от Shamsik Посмотреть сообщение
как эту функцию использовать для 2-3 полей
должен повесить addTextChangedListener на все поля которые хочешь "обработать"

Цитата Сообщение от Паблито Посмотреть сообщение
что, вообще никаких своих мыслей?
перед нами новичок в яве! я сам такие вопросы задавал когда начинал... и даже знание других языков не помогает самому сообразить КАК это прицепить в яве+sdk андроида...
Pablito
2473 / 1918 / 595
Регистрация: 12.05.2014
Сообщений: 6,742
Завершенные тесты: 1
19.03.2016, 14:20 #8
Цитата Сообщение от Tester64 Посмотреть сообщение
перед нами новичок в яве
я называю это по-другому

к тому же я задал нормальный вопрос, пусть думает самостоятельно, вдруг получится
разжевать и положить в рот всегда успеется
Shamsik
-42 / 17 / 5
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
19.03.2016, 14:34  [ТС] #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
        if (inputFullName.getText().length() == 0) btnRegister.setEnabled(false);
        if (inputSurname.getText().length() == 0) btnRegister.setEnabled(false);
 
 
inputFullName.addTextChangedListener(new TextWatcher()
        {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {}
 
            @Override
            public void afterTextChanged(Editable s) {
                if (s.length() == 0)
                {
                    btnRegister.setEnabled(false);
                }else
                {
                    btnRegister.setEnabled(true);
                }
            }
        });
 
        inputSurname.addTextChangedListener(new TextWatcher()
        {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {}
 
            @Override
            public void afterTextChanged(Editable s) {
                if (s.length() == 0)
                {
                    btnRegister.setEnabled(false);
                }else
                {
                    btnRegister.setEnabled(true);
                }
            }
        });
Добавлено через 1 минуту
Ну да Новичок так читал книги по Java вот хотел на java приложение для укрепление языка.

А так знаю языки (C++,PHP,Delphi,Swift)
Pablito
2473 / 1918 / 595
Регистрация: 12.05.2014
Сообщений: 6,742
Завершенные тесты: 1
19.03.2016, 14:45 #10
Цитата Сообщение от Shamsik Посмотреть сообщение
Вот почему так грубо.
показалось, я имел ввиду что надо сначала попробовать что-то сделать самому
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
public class MainActivity extends AppCompatActivity {
 
    EditText inputFullName;
    EditText inputSurname;
    Button btnRegister;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        inputFullName = (EditText) findViewById(R.id.name);
        inputSurname = (EditText) findViewById(R.id.surname);
        btnRegister = (Button) findViewById(R.id.btnRegister);
 
        btnRegister.setEnabled(!isNameOrSurnameEmpty());
 
        inputFullName.addTextChangedListener(watcher);
        inputSurname.addTextChangedListener(watcher);
    }
 
    private final TextWatcher watcher = new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }
 
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
        }
 
        @Override
        public void afterTextChanged(Editable s) {
            btnRegister.setEnabled(!isNameOrSurnameEmpty());
        }
    };
 
    private boolean isNameOrSurnameEmpty() {
        return inputFullName.getText().length() == 0 || inputSurname.getText().length() == 0;
    }
}
создаем один слушатель и назначаем его на оба поля ввода
привожу весь код из активити, что бы было понятно где и что создается
Shamsik
-42 / 17 / 5
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
19.03.2016, 15:03  [ТС] #11
Все отлично работает. Спасибо тебе.

Можно к тебе буду обращаться если возникнут какие нибудь вопросы по Java?
Pablito
2473 / 1918 / 595
Регистрация: 12.05.2014
Сообщений: 6,742
Завершенные тесты: 1
19.03.2016, 15:05 #12
можно задавать вопросы тут (в этой ветке или в разделе Java), желающих помочь всегда в достатке )
Shamsik
-42 / 17 / 5
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
19.03.2016, 15:07  [ТС] #13
Ладно. спасибо тебе за помощь, там в другой теме разметку кинул. )))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2016, 15:07
Привет! Вот еще темы с ответами:

Ошибка Button.setOnClickListener - Программирование Android
import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; ...

Звук по нажатию на button - Программирование Android
Привет. Я повесил OnTouch на button, но теперь по клику нет звука, как вернуть? Добавлено через 6 часов 56 минут Почему...

Floating action button - Программирование Android
Я, особо не верю, но вдруг кто-то уже делал такое...

Button внутри PopupWindow - Программирование Android
Имеется PopupWindow, в котором размещен LinearLayout. В этот layout я добавляю TextView и Button. Все нормально отображается, однако при...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.03.2016, 15:07
Ответ Создать тему
Опции темы

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