2011-10-24 20 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

相關問題