2011-10-24 9 views
0

URLを入力する必要があるEditTextと、有効なURLが入力されたときに強調表示されるVerifyボタンがある画面を作成しようとしています。Android - edittextに有効なURLが入力されるまでボタンが無効になる

入力したURLが有効かどうかを判断するロジックは何ですか?私は.comの文字列をedittextで探すか、他のロジックはありますか?有効なURLが入力されるとすぐにボタンが強調表示されるように、ユーザーが文字を入力したときにテキストを取得する方法を教えてください。

ありがとうございます。

答えて

3
  1. のURLの検証:ユーザーが有効なURLを入力するだけの時にボタンを有効にする方法Regular expression to match URLs in Java

のは、あなたの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がブール値であると思うが、私はわからないんだけど...

をあなたは、ボタンのsetVisible(true/false)を呼び出すculdことで。

+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

これはまた、http:// localhost /のようなURLを検証しますが、これは一部のアプリでは有効ではないかもしれません。しかし、それはいいです...私はそれが好きです。 – Cristian

関連する問題