[Android] 入力を監視するTextWatcher

TextWatcherはEditTextの文字入力を監視します。以下は8文字を超えると、「文字数オーバー」と表示を出す例。
 
textwatcher 01 - [Android] 入力を監視するTextWatcher

Android Studio 3.0.1
Android 8.0



TextWatcher

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

 

TextWatcherのポイント

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

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

  1. beforeTextChanged(CharSequence s, int start, int count,int after)
    • 文字列が修正される直前に呼び出されるメソッド
    • CharSequence s
      • 現在EditTextに入力されている文字列
    • int start
      • sの文字列で新たに追加される文字列のスタート位置
    • int count
      • sの文字列の中で変更された文字列の総数
    • int after
      • 新規に追加された文字列の数
  2. onTextChanged(CharSequence s, int start, int before, int count)
    • 文字1つを入力した時に呼び出される
    • CharSequence s
      •  現在EditTextに入力されている文字列
    • int start
      •  sの文字列で新たに追加される文字列のスタート位置
    • int before
      • 削除される既存文字列の数
    • int count
      • 新たに追加された文字列の数
  3. afterTextChanged(Editable s)
    • 最後にこのメソッドが呼び出される
    • Editable s
      • 最終的にできた修正可能な、変更された文字列

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

 

サンプルコード

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

 
レイアウトです
activity_main.xml

 
リソース
strings.xml

 

サンプル動画

 

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

関連ページ:

Reference:
TextWatcher| Android Developers

スマホの下取り

まだ1年も使っていないスマホを新機種に変えたくて下取りしようとお店に持ち込んだことがありますが、結局なんだかんだと思ったほどの金額になりませんでした(涙

このネットオフは専業のため高額買取が可能で、お店に行く時間が無い人にとっては送料無料の宅配便が自宅まで引取りに来てくれるのは助かります。

定額買取キャンペーン中であればキズがあっても付属品が無くても減額無しでお得です。」


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

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




Google Pixel 3 XLグローバル版
SIMフリー 並行輸入品
6.3インチの大画面
背景をぼかすポートレートモード撮影

Anker PowerCore II Slim 10000
Power IQ 2.0搭載
iPhone & Android対応

シェアする

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

フォローする