2011-10-24 39 views
0

我试图创建一个屏幕,其中有一个EditText需要输入url和一个Verify按钮,当输入一个有效的url时将会突出显示。Android - 按钮被禁用,直到在edittext中输入一个有效的URL

我想知道是什么逻辑来查找输入的网址是否有效?我应该在编辑文本中寻找.com字符串还是有其他逻辑?以及如何在用户输入字符时获取文本,以便在输入有效的URL后突出显示该按钮。

在此先感谢。

回答

3
  1. URL验证:Regular expression to match URLs in Java
  2. 如何只是当用户输入一个有效的URL启动按钮:

让我们猜你EditTexttxt_url ID:

EditText editText = (EditText) findViewById(R.id.txt_url); 
editText.addTextChangedListener(new TextWatcher() { 
    @Override 
    public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { 
    } 

    @Override 
    public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { 
    } 

    @Override 
    public void afterTextChanged(Editable editable) { 
     // lets supouse validation method is called validUrl() 
     button.setEnabled(validUrl(editable.toString())); 
    } 
}); 
1

试试这个:

UrlValidator validator = new UrlValidator(); 
validator.validate(url); 

我觉得validator.validate是一个布尔值,但我不知道......

随着你culd然后调用按钮的setVisible(true/false)

+0

'UrlValidator'属于Apache的Commons Validator包,默认情况下,它不包含在Android中。 – Cristian

+0

噢,谢谢,不知道... –

+0

很好的了解UrlValidator。感谢您的回应。但是,克里斯蒂安的回答更加完整。 – 500865

1

你可以试试创建一个URL对象并捕获MalformedURLException,如下所示:

editText.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void afterTextChanged(Editable s) { 
      try { 
       URL url = new URL(String.valueOf(s)); 
       // code to show verify button here 
      } catch (MalformedURLException e) { 
       // show not verified here 
      } 
     } 
    }); 
+1

这也验证URL的http:// localhost /对某些应用程序可能不是*有效*。虽然我很喜欢,但我喜欢它。 – Cristian

相关问题