getText() возвращает пустую строку в Edittext android

#android #android-edittext

#Android #android-edittext

Вопрос:

У меня такое странное поведение EditText .

Я создал класс, который расширяется EditText , затем я создал метод в этом новом классе под названием validate, и в этом методе я пытаюсь проверить текст, введенный пользователем EditText , с некоторыми условиями.

Проблема в том, что getText() все время возвращается пустая строка. Вот мой код :

 public class AttributeNumber extends EditText {
    public boolean validate () {
        Log.i("AMIRA", "Text Out"   getText().toString());
    }
}
  

Кто-нибудь может сказать мне, что не так?

Комментарии:

1. вы передаете число в edittext? или его строковое значение?

2. @PramodPatel Я передаю ему number, я установил для него тип ввода number, будет ли это иметь какое-либо значение

3. Ваш validate() метод должен быть помещен в некоторый прослушиватель, который вызывается при изменении текста, validate() не будет вызывать себя

4. @AmanGrover Да, я вызываю validate внутри onClick прослушивателя кнопки, при нажатии кнопки я вызываю validate для edittext.

5. @AmiraElsayedIsmail есть ли какая-то конкретная причина для создания AttributeNumber класса путем расширения EditText ? Вы можете легко написать validate() метод в своем Fragment или Activity , а не создавать пользовательский EditText .

Ответ №1:

Попробуйте это:

 public class AttributeNumber extends EditText {
    public boolean validate () {
        Log.i("AMIRA", "Text Out"   AttributeNumber.this.getText().toString());
    }
}
  

Ответ №2:

Я думаю, проблема в вашем методе validate(). В нем отсутствует оператор return.

 public class AttributeNumber extends EditText {
    public boolean validate () {
        Log.i("AMIRA", "Text Out"   getText().toString());
        return true;
    }
}