[Android] 入力を監視するTextWatcher

cat44 01 - [Android] 入力を監視するTextWatcherTextWatcherはEditTextの文字入力を監視します。例えば入力パスワードの制限文字数がある場合に「文字数オーバー」と表示を出すなどに使えます。

Android Studio 4.1.1
API 30



TextWatcher

 
スマホでは特にユーザーが文字入力を確定しないまま次に行ってしまうケースがあります。あるいは確定ボタンを入れるのがレイアウト上難しい場合など。
文字を監視して「入力が終わった」とか「文字数が越えている」などはEditText にTextWatcherを実装することで実現できます。
 

 

TextWatcherのポイント

 
TextWatcherの設定方法を見ていきます。

 
implements TextWatcher とすると以下のメソッドが呼び出されます。

beforeTextChanged(CharSequence s, int start, int count,int after)

  • 文字列が修正される直前に呼び出されるメソッド
  • CharSequence s
    • 現在EditTextに入力されている文字列
  • int start
    • sの文字列で新たに追加される文字列のスタート位置
  • int count
    • sの文字列の中で変更された文字列の総数
  • int after
    • 新規に追加された文字列の数

onTextChanged(CharSequence s, int start, int before, int count)

  • 文字1つを入力した時に呼び出される
  • CharSequence s
    •  現在EditTextに入力されている文字列
  • int start
    •  sの文字列で新たに追加される文字列のスタート位置
  • int before
    • 削除される既存文字列の数
  • int count
    • 新たに追加された文字列の数

afterTextChanged(Editable s)

  • 最後にこのメソッドが呼び出される
  • Editable s
    • 最終的にできた修正可能な、変更された文字列

リアルタイムで文字入力の前、最中、後と設定ができるわけです。

 

サンプルコード

 
実際にコードを記述すると
 
MainActivity.java

 
レイアウトです
activity_main.xml

 
android:importantForAutofill=”no”
はautofillHintsの設定が無い場合のワーニングを消すためです
 
リソース
strings.xml

 

サンプル動画

 

 
テキストの文字入力数をカウントする程度であれば afterTextChanged(Editable s) を使うのが一番簡単です。他は細かくやりたい場合でしょうか。
 

関連ページ:

Reference:
TextWatcher| Android Developers

誤字脱字、意味不明で分からにゃイ、
などのご意見はこちらから mailフォーム

ブックマークしておくと便利です このエントリーをはてなブックマークに追加

 

アプリ開発が上達するお勧め

アプリ開発を始めたけどわからないところがあり、誰かに聞きたいけど周りにはそんな人はいない…あるいは、会社で働いていて日中そんなに時間をとれないなど、オンラインのプログラミングスクールがいいでしょう。

オンラインスクールは色々ありますが、以下の3つはAndroidが学習できる老舗スクールです。


TECH ACADEMY
Androidアプリコース


こういうものではアプリ作れないと言う意見もありますが、それは結局本人のやる気があるかないかです。やる気があっても独学では突破しにくいところは教えてもらうのが一番早い。


侍エンジニア塾
侍エンジニア塾 無料体験レッスン


とても簡単なことなのに本やネットの画像だけでは分かりにくいことはあります。実際に質問してピンポイントで教えてもらうと、なんだそんなこと、と言うのがけっこうあります。


CodeCamp
~約8,000名の受講生と80社以上の導入実績~
現役エンジニアのオンライン家庭教師CodeCamp




直接(ネットで)誰か分かる人に聞いた方が早く解決して、上達も早いと思います。




シェアする

  • このエントリーをはてなブックマークに追加

フォローする