1. ホーム
  2. android

[解決済み] AndroidのEditTextでURL/Webサイト名を検証する方法は?

2023-02-18 15:52:01

質問

URLやサイト名などを入力したいのですが、どのようにすればよいですか? www.google.com から EditText をクリックすると Button をクリックすると送信されます。 EditText がフォーカスを失ったとき、URLは検証される必要があります。 という形式で検証されます。 www.anyURL.com という形式です。

どうすればいいのでしょうか?アンドロイドに内蔵されている機能はありますか?

どのように解決するのですか?

短い答え

パターンクラスでWEB_URLパターンを使用します。

 Patterns.WEB_URL.matcher(potentialUrl).matches()

これは URLが有効であれば真 そして が無効な場合は false となります。 .

長い回答

Android API レベル 8 では WEB_URL パターンがあります。ソースを引用すると、それは RFC 3987 のほとんどの部分と一致します("es)。もし、より低いAPIレベルをターゲットとするならば、単にパターンをソースからコピーして、アプリケーションに含めることができます。パターンやマッチャーの使い方はご存知だと思いますので、ここではこれ以上詳しく触れません。

また、クラス URLUtil はいくつかの便利なメソッドを提供しています。

メソッドの説明はあまり詳細ではないので、おそらくソースをみて、どれがあなたの目的に最も合うかを見つけるのが最善でしょう。

いつバリデーションチェックを開始するかについては、複数の可能性があります: EditTextコールバック関数を使用することができます。

を使用するか、または テキストウォッチャー を使うか、その方が良いと思います。

使用しないでください。 URLUtil を使って、以下のようにURLを検証してください。

 URLUtil.isValidUrl(url)

のような文字列を有効なURLとして与えてしまうため、正しくありません。