Добавьте http://www. в тексте если не существует
Как я могу узнать, что какой-то текст содержит "http://www." Я хочу показать домен в веб-представлении. Доменное имя записывается в TextView, но нет никаких ограничений для добавления префикса. Если пользователь не ввел его, я должен добавить и отобразить URL в веб-просмотре.
6 ответов
Вы можете сделать это
String url = textView.getText().toString();
if(!url.startsWith("www.")&& !url.startsWith("http://")){
url = "www."+url;
}
if(!url.startsWith("http://")){
url = "http://"+url;
}
Вы можете использовать этот URL для отображения содержимого в WebView
Надеюсь, что это решит вашу проблему
Только что изменил ответ @silwar и добавил https:
if(!url.startsWith("www.")&& !url.startsWith("http://") && !url.startsWith("https://")){
url = "www."+url;
}
if(!url.startsWith("http://") && !url.startsWith("https://")){
url = "http://"+url;
}
Наиболее эффективный способ проверки того, что доменное имя правильно сформировано и содержит (или нет) префикс, - использование регулярного выражения.
Проверьте Java Pattern, чтобы соответствовать регулярному выражению в Android. Оно того стоит.
По просьбе Себастьяна, регулярное выражение является хорошим вариантом. Вы также можете получить текст из представления, создать объект URI
Uri uri = Uri.create(view.getText().toString());
тогда с помощью uri.somemethod Вы сможете получить все об URL, который хотите знать. Если URI не удается создать, вы генерируете сообщения об ошибках, потому что что-то пошло не так.
Я бы просто получил текст из TextView и проанализировал его с помощью startWith(). Если это неверно, просто добавьте его к тексту и используйте setText(), чтобы переназначить его.
Вы также можете проверить наличие других выражений, таких как "www.". Так что присмотритесь к содержит ().
Попробуй это
String a = "http://";
webview.loadUrl(a + url.getText().toString());