7

Come posso sapere che alcuni testi contengono "http: // www." Voglio mostrare il dominio in Web View. Il nome di dominio è scritto in TextView ma non ci sono restrizioni per aggiungere il prefisso. Se l'utente non l'ha inserito, devo aggiungere e visualizzare l'URL in webview.Aggiungi http: // www. nel testo se non esiste

risposta

18

Si può fare come questo

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

È possibile utilizzare questo URL per visualizzare il contenuto in WebView

Spero che questo risolverà il vostro problema

+0

Questo approccio è un po 'più semplice rispetto all'utilizzo di regex. Ad ogni modo, dovresti anche gestire il caso in cui l'utente digita 'www.domain.com' –

+0

Hey Sebastien, per favore controlla di nuovo la risposta – silwar

+0

Hm, questo approccio è buggato (potresti finire con URL come' www.http: // www .domain.com'). Ad ogni modo, penso che il poster aggiusterà il codice in base alle sue esigenze. –

3

Il modo più efficiente per verificare che il nome del dominio sia ben formato e contenga (o meno) un prefisso, è l'utilizzo di un'espressione regolare.

Verificare Java Pattern per corrispondere regex in Android. Ne vale la pena.

+0

collegamento è morto (404) – mitsest

1

Vorrei solo ottenere il testo dal TextView e analizzarlo tramite startsWith(). Se questo è falso, basta aggiungerlo al testo e usare setText() per rasterizzarlo.

Si potrebbe anche voler controllare altre espressioni come "www.". Quindi dai uno sguardo più da vicino a contains().

1

Come richiesto da Sebastien, regex è una buona opzione. È inoltre possibile ottenere il testo dal punto di vista, creare un oggetto URI

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

poi con uri.somemethod Si dovrebbe essere in grado di ottenere tutto ciò che riguarda un URL che si desidera sapere. Se l'uri non riesce a creare, si generano messaggi di errore perché qualcosa è andato storto.

-2

Prova questa

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

Questo si interromperebbe se http: // esiste già nella stringa. – Tommie

4

solo modificato @silwar rispondi e aggiungi https:

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