【问题标题】:Validate Specfic URL input in EditText for android验证 EditText for android 中的特定 URL 输入
【发布时间】: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 我不希望这样
  • 如果有帮助,请通过以下链接:- [stackoverflow.com/questions/3453641/… [1]: stackoverflow.com/questions/3453641/…

标签: android url save jsoup


【解决方案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();
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多