Android - 禁用按钮,直到在edittext中输入有效的URL

时间:2011-10-24 17:58:20

标签: android url button

我正在尝试创建一个屏幕,其中EditText需要输入网址,而Verify按钮会在输入有效网址时突出显示。

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

提前致谢。

3 个答案:

答案 0 :(得分:4)

  1. 网址验证:Regular expression to match URLs in Java
  2. 如何在用户输入有效网址时启用按钮:
  3. 我们猜测您的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 :(得分:1)

试试这个:

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

我认为validator.validate是一个布尔值,但我不确定......

然后你就会笨拙地调用按钮的setVisible(true/false)

答案 2 :(得分: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
            }
        }
    });