Respuesta corta
Usar el patrón WEB_URL en la clase Patterns
Patterns.WEB_URL.matcher(potentialUrl).matches()
Devolverá True si la URL es válida y falsa si la URL no es válida .
Respuesta larga
A partir del nivel 8 de la API de Android, existe un patrón WEB_URL . Citando la fuente, "coincide con la mayor parte de RFC 3987". Si apunta a un nivel de API más bajo, simplemente puede copiar el patrón de la fuente e incluirlo en su aplicación. Supongo que sabe cómo usar patrones y comparadores, por lo que no voy a entrar en más detalles aquí.
Además, la clase URLUtil proporciona algunos métodos útiles, por ejemplo:
Las descripciones de los métodos no son muy elaboradas, por lo que probablemente sea mejor que busque la fuente y averigüe cuál se adapta mejor a su propósito.
En cuanto a cuándo activar la verificación de validación, existen múltiples posibilidades: puede usar las funciones de devolución de llamada EditText
o use un TextWatcher , que creo que sería mejor.
NO USE URLUtil para validar la URL como se muestra a continuación.
URLUtil.isValidUrl(url)
porque da cadenas como "http: //" como URL válida que no es verdadera