Коротка відповідь
Використовуйте шаблон WEB_URL у класі Шаблони
Patterns.WEB_URL.matcher(potentialUrl).matches()
Він поверне значення True, якщо URL-адреса є дійсним, і false, якщо URL-адреса недійсна .
Довга відповідь
Що стосується Android API рівня 8, існує шаблон WEB_URL . Цитуючи джерело, воно "відповідає [більшості] більшій частині RFC 3987". Якщо ви націлитесь на нижчий рівень API, ви можете просто скопіювати шаблон із джерела та включити його у свою програму. Я припускаю, що ви знаєте, як використовувати візерунки та збіги, тому я не буду вдаватися до деталей тут.
Також клас URLUtil надає деякі корисні методи, наприклад:
Описи методів не дуже розроблені, тому вам, мабуть, найкраще поглянути на джерело та з'ясувати, який із них найкраще відповідає вашій меті.
Що стосується того, коли запускати перевірку перевірки, існує безліч можливостей: ви можете використовувати функції зворотного виклику EditText
або скористайтеся TextWatcher , що, на мою думку, було б краще.
НЕ ВИКОРИСТОВУЙТЕ URLUtil, щоб перевірити URL-адресу, як показано нижче.
URLUtil.isValidUrl(url)
оскільки він надає рядки типу "http: //" як дійсну URL-адресу, що не відповідає дійсності