Краткий ответ
Используйте шаблон WEB_URL в классе шаблонов
Patterns.WEB_URL.matcher(potentialUrl).matches()
Он вернет True, если URL-адрес действителен, и false, если URL-адрес недопустим .
Длинный ответ
Начиная с Android API уровня 8 существует шаблон WEB_URL . Цитируя источник, он «соответствует большей части RFC 3987». Если вы нацеливаетесь на более низкий уровень API, вы можете просто скопировать шаблон из источника и включить его в свое приложение. Я предполагаю, что вы знаете, как использовать шаблоны и сопоставители, поэтому я не буду вдаваться в подробности здесь.
Также класс URLUtil предоставляет несколько полезных методов, например:
Описания методов не очень подробны, поэтому вам, вероятно, лучше всего взглянуть на источник и выяснить, какой из них лучше всего подходит для вашей цели.
Что касается того, когда запускать проверку валидации, есть несколько возможностей: вы можете использовать функции обратного вызова EditText.
или используйте TextWatcher , что, я думаю, было бы лучше.
НЕ ИСПОЛЬЗУЙТЕ URL-адрес Используйте его для проверки URL-адреса, как показано ниже.
URLUtil.isValidUrl(url)
потому что он дает такие строки, как "http: //" как действительный URL, что не соответствует действительности