Odpowiedz

18

Można zrobić tak

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

Możesz użyć tego adresu URL do wyświetlania treści w WebView

nadzieję rozwiązać ten problem

+0

To podejście jest nieco prostsze niż użycie regex. W każdym razie, powinieneś także poradzić sobie z przypadkiem, w którym użytkownik wpisze 'www.domain.com' –

+0

Hej, Sebastien, proszę sprawdź odpowiedź ponownie – silwar

+0

Hm, to podejście jest błędne (możesz skończyć z adresami URL' 'http: // www .domain.com'). W każdym razie, myślę, że plakat dostosuje kod do swoich potrzeb. –

3

Najbardziej skutecznym sposobem sprawdzenia, czy nazwa domeny jest dobrze uformowana i zawiera (lub nie) prefiks, jest użycie wyrażenia regularnego.

Zapoznaj się z Java Pattern, aby dopasować wyrażenie regularne w systemie Android. Jest tego warte.

+0

link jest martwy (404) – mitsest

1

Po prostu pobierałbym tekst z TextView i parsował go za pomocą startsWith(). Jeśli jest to wartość false, po prostu dodaj ją do tekstu i użyj setText(), aby ponownie ją zarchiwizować.

Możesz również chcieć sprawdzić inne wyrażenia, takie jak tylko "www.". Więc przyjrzyj się bliżej funkcji contains().

1

Zgodnie z prośbą Sebastie, regex to dobra opcja. Można również uzyskać tekst z widzenia, utworzyć obiekt URI

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

następnie uri.somemethod Powinieneś być w stanie uzyskać wszystko o url chcesz wiedzieć. Jeśli uri nie uda się utworzyć, generowane są komunikaty o błędach, ponieważ coś poszło nie tak.

-2

Spróbuj

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

To by się zepsuło, jeśli http: // już istnieje w ciągu znaków. – Tommie

4

tylko zmodyfikowano @silwar odpowiedź i dodaj https:

if(!url.startsWith("www.")&& !url.startsWith("http://") && !url.startsWith("https://")){ 
     url = "www."+url; 
    } 
    if(!url.startsWith("http://") && !url.startsWith("https://")){ 
     url = "http://"+url; 
    } 
Powiązane problemy