EditText入力内容の制御¶
- ア、数字限定、かつソフトキーを出力しないの方法は以下通り
①インターフェイス OnTouchListener を実装する
②メソッド onTouch をオーバーライドする
1 2 3 4 5 6 | @Override public boolean onTouch(View v, MotionEvent event) { EditText edit = (EditText) v; edit.setInputType(InputType.TYPE_NULL); return false; } |
③setOnTouchListener を EditText に関連する
1 | edit.setOnTouchListener(this); |
④メソッド %{color:red}onKey% をオーバーライドする
1 2 3 4 5 6 7 8 | @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (v instanceof EditText) { EditText edit = (EditText) v; edit.setInputType(InputType.TYPE_CLASS_NUMBER); } return false; } |
- イ、桁数の制御について*
①インターフェイス
TextWatcherを実装する
②メソッド afterTextChanged をオーバーライドする
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | @Override public void afterTextChanged(Editable s) { int editSelectionStart; int editSelectionEnd; View v = getCurrentFocus(); if (v instanceof EditText) { EditText edit = (EditText) v; editSelectionStart = edit.getSelectionStart(); editSelectionEnd = edit.getSelectionEnd(); if (EDITTEXT_MAXLENGTH < s.length()) { s.delete(editSelectionStart - 1, editSelectionEnd); } } } |
③メソッド %{color:red}「addTextChangedListener」% で %{color:red}EditText% のテキスト変更イベントに関連する
1 | edit.addTextChangedListener(this); |