7

¿Cómo puedo saber que algunos textos contienen "http: // www." Quiero mostrar el dominio en la Vista web. El nombre de dominio está escrito en TextView, pero no hay restricciones para agregar el prefijo. Si el usuario no lo ingresó, tengo que agregar y mostrar la URL en la vista web.Agregar http: // www. en el texto si no existe

Respuesta

18

Puede hacer como esto

String url = textView.getText().toString(); 
if(!url.startsWith("www.")&& !url.startsWith("http://")){ 
    url = "www."+url; 
} 
if(!url.startsWith("http://")){ 
    url = "http://"+url; 
} 

Se puede utilizar esta URL para mostrar contenido en WebView

Hope esto va a resolver su problema

+0

Este enfoque es un poco más simple que usar regex. De todos modos, también debe manejar el caso en el que el usuario escribe 'www.dominio.com' –

+0

Hola, Sebastien, por favor revise la respuesta nuevamente – silwar

+0

Hm, este enfoque es defectuoso (puede terminar con URLs como' www.http: // www .dominio.com'). De todos modos, creo que el póster ajustará el código de acuerdo con sus necesidades. –

3

La forma más eficaz de comprobar que el nombre de dominio está bien formado y contiene (o no) un prefijo, es usar una expresión regular.

Consulte Java Pattern para que coincida con regex en Android. Vale la pena.

+0

enlace está muerto (404) – mitsest

1

Me gustaría obtener el texto de TextView y analizarlo a través de startsWith(). Si esto es falso, solo agréguelo al texto y use setText() para reasignarlo.

Es posible que también desee buscar otras expresiones como "www.". Así que eche un vistazo más de cerca a contains().

1

Como solicitó Sebastien, regex es una buena opción. También puede obtener el texto desde el punto de vista, crear un objeto URI

Uri uri = Uri.create(view.getText().toString()); 

luego con uri.somemethod Usted debe ser capaz de conseguir todo alrededor de una dirección URL que desea saber. Si el uri no puede crearse, genera mensajes de error porque algo salió mal.

-2

probar este

String a = "http://"; 
webview.loadUrl(a + url.getText().toString()); 
+0

Esto se rompería si http: // ya existe en la cadena. – Tommie

4

solo respuesta @silwar modificada y agregar https:

if(!url.startsWith("www.")&& !url.startsWith("http://") && !url.startsWith("https://")){ 
     url = "www."+url; 
    } 
    if(!url.startsWith("http://") && !url.startsWith("https://")){ 
     url = "http://"+url; 
    } 
Cuestiones relacionadas