我正在尝试创建一个屏幕,其中EditText
需要输入网址,而Verify
按钮会在输入有效网址时突出显示。
我想知道输入的网址是否有效的逻辑是什么?我应该在edittext中查找.com
字符串还是有其他逻辑?如何在用户输入字符时获取文本,以便在输入有效网址后立即突出显示该按钮。
提前致谢。
答案 0 :(得分:4)
我们猜测您的EditText
有txt_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
}
}
});