我試圖創建一個屏幕,其中有一個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