[Android] スマホにEditTextを使って文字を入力する

Androidアプリで文字入力を扱うにはEditTextを使います。
以下は EditText に文字を入れ、ボタンをタップすることにより TextView に表示される簡単な例です。

Android Studio
2021.1.1




EditText

 
単純な文字入力ですが、実は色々と奥深いものがあります。
入力の文字について、終了のタイミングとその入力の取得など、とりあえず基本的なところを理解しておきましょう。

1x1.trans - [Android] スマホにEditTextを使って文字を入力する


 
 

EditTextの設定

基本的な使い方については、TextView などと同じようにレイアウトファイルの EditText の id で設定します。
 


 
文字入力が終了した状態にて、Button を使って文字列を取り出すトリガーにします。
 
入力された文字を取り出すために
getText().toString()
を使います
 


 
lambda式 の場合は

 

サンプルコード

 
EditTextに文字を入れ、ボタンをタップすることにより TextView に表示されるアプリです。
 
MainActivity.java


 
レイアウトです
activity_main.xml


 
android:hint
android:autofillHints
android:inputType
を設定しないとwarningが出ます。
 
android:hint
ここに文字入力をしてくださいなどわかるように半透明の文字を出します。
入力し始めるとそれはなくなります。
 
android:autofillHints
これは以前に入力したものを再度使いたい場合など、ログインのID名などを表示してミスタイプを防ぐためのものです。
ただここを設定しただけではできないので、AutofillServiceなどの実装が必要です。ここでは扱わないので適当にwarningを消す目的だけの設定になっています。
 
android:inputType
以前はこれがなくてもwariningも出なかったのですが、想定されるものが数字か文字なのかなどによりキーボードの種類が変わります。
 
リソースです
strings.xml


 

 
この方法は、昔のボタンしかなかった時のアプリでは有効ですが実際には困ることがあります。スマホの画面タッチはいつでも、どこでもできるので文字入力だけして、他のアイコンをタップしたり、Homeに戻ったりと文字を入力しても、確定してくれないユーザーもいるからです。スマホではそれができてしまいます
 
そんなケースにはリアルタイムに文字入力を監視するTextWatcher などを使います。
 

cat44 00 100x100 - [Android] スマホにEditTextを使って文字を入力する
TextWatcherはEditTextの文字入力を監視します。例えば入力パスワードの制限文字数がある場合に「文字数オーバー」と表示を出すな...

 

References:
EditText | Android Developers
Autofill framework | Android Developers

シェアする

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

フォローする