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