我想从 Android 中的 EditText
中获取输入、URL 或网站名称,例如 www.google.com,然后用户点击 按钮
提交或当 EditText
失去焦点时,应验证 URL,
就像它的格式“www.anyURL.com”...
我该怎么做? android 中是否有任何内置功能可用?
最佳答案
简答
在 Patterns 类中使用 WEB_URL 模式
Patterns.WEB_URL.matcher(potentialUrl).matches()
如果 URL 有效则返回 True,如果 URL 无效则返回 false。
长答案
从 Android API 级别 8 开始,有一个 WEB_URL图案。引用源代码,它“匹配 [es] RFC 3987 的大部分内容”。如果您针对较低的 API 级别,您可以简单地从源中复制模式并将其包含在您的应用程序中。我假设你知道如何使用模式和匹配器,所以我在这里不再赘述。
还有类URLUtil提供了一些有用的方法,例如:
方法的描述不是很详细,因此您最好查看源代码并找出最适合您的目的的方法。
至于什么时候触发校验检查,有多种可能:可以使用EditText回调函数
或使用 TextWatcher ,我认为这样会更好。
不要使用 URLUtil 来验证 URL,如下所示。
URLUtil.isValidUrl(url)
因为它提供了像“http://”这样的字符串作为不正确的有效 URL
关于android - 如何在 Android 的 EditText 中验证 URL/网站名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5617749/