验证 EditText for android 中的特定 URL 输入
Posted
技术标签:
【中文标题】验证 EditText for android 中的特定 URL 输入【英文标题】:Validate Specfic URL input in EditText for android 【发布时间】:2014-09-16 07:45:51 【问题描述】:我的应用程序是关于从特定网站下载图像,例如www.example.com/img-...
用户将在 EditText 字段中输入 img 的 url。例如www.example.com/img-123
我的问题是,当用户输入错误的 URL 时,即没有图像的 URL,它是空的,例如www.example.com/img-222
我想检测到这一点并告诉用户他们的输入没有链接到图像并重试。
我正在使用isValidUrl()
函数来检测输入是否仅为 WEB_URL 但我想要的是当输入的 url 没有图像时,程序应该告诉他们这是 url 的格式不正确。
我正在使用 Jsoup.connect(url).get();连接到url并获取图像并保存
private boolean isValidUrl(String url)
Pattern p = Patterns.WEB_URL;
Matcher m = p.matcher(url);
if(m.matches())
return true;
else
return false;
【问题讨论】:
让我稍微理解一下。您要做的是连接到有问题的 url,并在允许用户继续输入他们输入的 url 之前检查那里是否有图像? 如果您有 android 设备.. 检查 Instagram 下载器应用程序.. 我想要类似于输入框 EditText 的东西。当您输入一个没有图像或视频的 URL 时 .. 程序不会保存任何内容或执行任何操作,并且至少会说错误的 URL ...我的应用程序正在从 URL 中保存任何内容,即使它是空的 .. 例如我得到了我的 img对于任何没有数据的 URl,大小 = 0 字节的 .jpg.jpg 我不希望这样 如果有帮助,请通过以下链接:- [***.com/questions/3453641/… [1]: ***.com/questions/3453641/… 【参考方案1】:我们可以使用android原生的android.webkit.URLUtil类来验证任何类型的url。
URLUtil.isValidUrl(downloadImaheEditText.getText().toString());
如果有效则返回真,否则假。
【讨论】:
【参考方案2】:String[] schemes = "http","https"; //DEFAULT schemes = "http", "https", "ftp"
UrlValidator urlValidator = new UrlValidator(schemes);
if (urlValidator.isValid("http://www.google.com"))
//url is valid
else
//url is invalid
使用 Apache commons-validator URLValidator class
【讨论】:
【参考方案3】:我试过这个,它对我有用。请在下面找到代码sn-p:
public static boolean isURL(String url)
Pattern p = Patterns.WEB_URL;
Matcher m = p.matcher(url.toLowerCase());
return m.matches();
【讨论】:
以上是关于验证 EditText for android 中的特定 URL 输入的主要内容,如果未能解决你的问题,请参考以下文章