gettext из edittext внутри OnClicklistener не работает в Android - PullRequest
0 голосов
/ 11 июня 2019

Почему я не могу получить доступ к тексту из текста редактирования через gettext

button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(name.getText().toString() != "") {
            }

В нем говорится, что имя должно быть объявлено окончательно.если так, я не могу запустить программу.Клик не работает или приложение останавливается.

Ответы [ 3 ]

0 голосов
/ 11 июня 2019

Объявите ваши EditText и Button как глобальные и инициализируйте it

В java при использовании == для двух объектов вы фактически не сравниваете сами строки. Вам нужно будет использовать .equals (String) или .equalignorecase (String).

== фактически сравнивает ссылки на два объекта, а не их значения.

string1.equals (String target) сравнивает две строки на основе фактических символов в строках.

 button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if(name.getText().toString().equalsIgnoreCase("")) {
        }
0 голосов
/ 11 июня 2019

Он должен быть объявлен окончательным внутри метода onCreate, а не над элементом onCreate, чтобы избавиться от всех ошибок.

0 голосов
/ 11 июня 2019

Либо объявите свой текст редактирования как final , либо как global .

Более того, никогда не следует использовать != для сравнения строк.Это склонно к ошибке.Измените:

if(name.getText().toString() != "")

на:

if(!name.getText().toString().equals(""))

или в данном конкретном случае, так как на самом деле вас интересует строка не пустая , вы можете использовать:

if(!name.getText().toString().isEmpty())
...