InputFilterインターフェイスを実装し、Editableインターフェイスを採用したUI(EditText)に設定することでキー入力を制限できるようになる。
注意
制限されたキーを押下しても入力はされないが、キーボード上部の補完は入力されたような振る舞いをする。
ただしEditTextの内容をTextViewなどに出力しても入力はされていない。
MainActivity.java
englishNameEditText = (EditText) findViewById(R.id.englishNameEditText);
InputFilter inputFilter = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
if (source.toString().matches("^[a-zA-Z]$")) {
return source;
}
return "";
}
};
InputFilter[] filters = { inputFilter };
englishNameEditText.setFilters(filters);