[解決済み] Android: EditText 入力を検証するにはどうすればよいですか?
2022-04-21 19:17:02
質問
一連のEditTextsに対してフォーム入力の検証を行う必要があります。OnFocusChangeListenersを使用して、ユーザーが各テキストに入力した後に検証を開始していますが、最後のEditTextでは期待通りの動作になりません。
最後の EditText に入力中に "Done" ボタンをクリックすると、InputMethod は切断されますが、技術的には EditText のフォーカスが失われることはありません(したがって、検証も発生しません)。
最適な解決策は?
フォーカスが変わったときではなく、InputMethodが各EditTextからアンバインドされたときに監視するべきですか?もしそうなら、どのように?
どのように解決するのですか?
を使用してはいかがでしょうか。
TextWatcher
?
をいくつも持っているので
EditText
は、以下のようになります。
-
あなたのアクティビティが実装しているのは
android.text.TextWatcher
インターフェース - EditTextボックスにTextChangedリスナーを追加する。
txt1.addTextChangedListener(this);
txt2.addTextChangedListener(this);
txt3.addTextChangedListener(this);
-
オーバーライドされたメソッドのうち
afterTextChanged(Editable s)
メソッドは次のようになります。
@Override
public void afterTextChanged(Editable s) {
// validation code goes here
}
は
Editable s
では、どのEditTextボックスのテキストが変更されたかを見つけるのに役立ちません。しかし、次のように直接EditTextボックスの内容をチェックすることができます。
String txt1String = txt1.getText().toString();
// Validate txt1String
を同じメソッドで実行します。私が明確であることを望みますし、もしそうなら、それは助けになります :)
EDITです。 よりクリーンなアプローチとして、以下をご参照ください。 Christopher Perryの回答 を以下に示します。
関連
-
NetworkOnMainThreadException
-
android E/RecyclerView﹕ アダプタが接続されていないため、レイアウトをスキップする。
-
Android Studioのgitの使用とgitの設定パス
-
[解決済み] android.os.NetworkOnMainThreadException' を修正するにはどうすればよいですか?
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み] AndroidでEditTextのテキスト長を制限する最も良い方法は何ですか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[android studio]com.android.ide.common.process.ProcessException: aaptの実行に失敗しました
-
Android: インポートモジュールエラー Android リソースのリンクに失敗しました
-
最新のandroidプロジェクトディレクトリにあるarmeabi-v7aとarmeabiの具体的な意味とその違いを教えてください。
-
Android studioのインストールと問題発生、Emulator: PANIC: AVDのシステムパスが見つかりません。
-
エラー:未宣言の識別子(AS)の使用
-
JVMのエラーに遭遇しました。Java Runtime Environmentによって致命的なエラーが検出されました。
-
Android Nで報告されたエラーを解決する: android.os.FileUriExposedException: file:///storage/emulated/0/
-
Android TextViewにandroid:ellipsize=endのバグがある。
-
アンドロイドリストビュー
-
[解決済み] AndroidでInputFilterを使用してEditTextの文字を制限するにはどうすればよいですか?