我试图创建一个屏幕,其中有一个EditText
需要输入url和一个Verify
按钮,当输入一个有效的url时将会突出显示。Android - 按钮被禁用,直到在edittext中输入一个有效的URL
我想知道是什么逻辑来查找输入的网址是否有效?我应该在编辑文本中寻找.com
字符串还是有其他逻辑?以及如何在用户输入字符时获取文本,以便在输入有效的URL后突出显示该按钮。
在此先感谢。
我试图创建一个屏幕,其中有一个EditText
需要输入url和一个Verify
按钮,当输入一个有效的url时将会突出显示。Android - 按钮被禁用,直到在edittext中输入一个有效的URL
我想知道是什么逻辑来查找输入的网址是否有效?我应该在编辑文本中寻找.com
字符串还是有其他逻辑?以及如何在用户输入字符时获取文本,以便在输入有效的URL后突出显示该按钮。
在此先感谢。
让我们猜你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()));
}
});
试试这个:
UrlValidator validator = new UrlValidator();
validator.validate(url);
我觉得validator.validate
是一个布尔值,但我不知道......
随着你culd然后调用按钮的setVisible(true/false)
。
你可以试试创建一个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
}
}
});
这也验证URL的http:// localhost /对某些应用程序可能不是*有效*。虽然我很喜欢,但我喜欢它。 – Cristian
'UrlValidator'属于Apache的Commons Validator包,默认情况下,它不包含在Android中。 – Cristian
噢,谢谢,不知道... –
很好的了解UrlValidator。感谢您的回应。但是,克里斯蒂安的回答更加完整。 – 500865