Krótka odpowiedź
Użyj wzorca WEB_URL w klasie Patterns
Patterns.WEB_URL.matcher(potentialUrl).matches()
Zwróci True, jeśli adres URL jest prawidłowy, lub false, jeśli URL jest nieprawidłowy .
Długa odpowiedź
Od poziomu 8 interfejsu API systemu Android istnieje wzorzec WEB_URL . Cytując źródło, jest ono „zgodne z większością części RFC 3987”. Jeśli celujesz w niższy poziom API, możesz po prostu skopiować wzorzec ze źródła i dołączyć go do aplikacji. Zakładam, że wiesz, jak używać wzorców i dopasowań, więc nie będę tutaj wchodził w szczegóły.
Również klasa URLUtil udostępnia kilka przydatnych metod, np .:
Opisy metod nie są zbyt rozbudowane, dlatego prawdopodobnie najlepiej przyjrzeć się źródłu i zastanowić się, która z nich najlepiej pasuje do Twojego celu.
Jeśli chodzi o to, kiedy uruchomić sprawdzanie poprawności, istnieje wiele możliwości: możesz użyć funkcji wywołania zwrotnego EditText
lub użyj TextWatchera , który moim zdaniem byłby lepszy.
NIE UŻYWAJ URLUtil do weryfikacji adresu URL, jak poniżej.
URLUtil.isValidUrl(url)
ponieważ podaje ciągi takie jak „http: //” jako prawidłowy adres URL, który nie jest prawdziwy