обратитесь к EditText как String - PullRequest
       1

обратитесь к EditText как String

0 голосов
/ 14 октября 2018

Я создал простое приложение, которое содержит один метод, это приложение должно проверять, действителен ли введенный пользователем номер телефона.поэтому я сделал следующие шаги:

  1. Расширение текста редактирования в файле Java
  2. Ссылка переменной на переменную в файле XML
  3. Получить тексти в строку к этой переменной
  4. Напишите метуданные, которые ссылаются на переменную "phone"

Объявите (шаг 1):

private static EditText phone_et_c

refare (шаг2):

phone_et_c=(EditText) findViewById(R.id.phone_et_c);

получить текст и в строку (шаг 3):

String phone=phone_et_c.getText().toString();

и mathoud будет (шаг 4):

public static boolean isValid(String phone)
{
    if ((phone.length()==10)||(phone.charAt(0)==0&&phone.charAt(1)==5)){
        return true;
    }
    else
        return false;
}

myошибка заключалась в следующем:

10-14 10: 06: 05.885 5140-5140 / com.miara.yagel.maspera E / AndroidRuntime: FATAL EXCEPTION: main Процесс: com.miara.yagel.maspera,PID: 5140 java.lang.StringIndexOutOfBoundsException: length = 0;index = 0 в java.lang.String.charAt (собственный метод) в com.miara.yagel.maspera.CreatUserActivity.isValid (CreatUserActivity.java:69) в com.miara.yagel.maspera.CreatUserActivity $ 1.onClick (CreatUserActivity).Java: 56) на android.view.View.performClick (View.java:6294) на android.view.View $ PerformClick.run (View.java:24770) на android.os.Handler.handleCallback (Handler.java:790) на android.os.Handler.dispatchMessage (Handler.java:99) на android.os.Looper.loop (Looper.java:164) на android.app.ActivityThread.main (ActivityThread.java:6494) на java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:438) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807)

спасибо!

Ответы [ 3 ]

0 голосов
/ 14 октября 2018

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

public static boolean isValid(String phone) {
    String str = phone.trim();
    int len = str.length();
    return ((len > 0) && ((len == 10)||(str.charAt(0) == 0 && str.charAt(1) == 5)));
}
0 голосов
/ 15 октября 2018

я искал в другом naswer и обнаружил, что: EditText getText () возвращает пустую строку

, по-видимому, я должен написать шаг 3 внутри кнопки Onclick.я знаю младшие ошибки мои плохие, спасибо всем

0 голосов
/ 14 октября 2018

Проблема в том, что ваш EditText имеет длину 0. Поэтому, когда вы конвертируете его в строку, ваша строка также имеет длину 0.Поэтому indexOf (0) генерирует исключение, потому что ваша строка пуста.Используйте метод наподобие isEmpty (), чтобы сначала проверить, является ли он пустым, а затем выполнить итерацию по индексам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...