LoginSignup
2
0

More than 5 years have passed since last update.

【Android】EditText でのアルファベット大文字制限、長さ制限

Last updated at Posted at 2019-03-27

EditText でのアルファベット大文字制限

Android アプリでの入力ボックスとして使われる EditText で、
アルファベット大文字のみの入力に制限したい!
iOS の場合は 【iOS】UITextField でのアルファベット大文字制限、長さ制限 を参照してください。

環境

ホスト: Windows 10
Android Studio: 3.3.2
Java

属性の設定で行う場合

レイアウトを開き対象の UITextField を選択して 右ペインの属性:digits を開いて編集します。
image.png

android:digits="ABCDEFGHIJKLMNOPQRSTUVWXYZ"

他の制約もまとめて適用する場合

フィルターの準備

MyActivity.java
    // アルファベットフィルタ
    private  InputFilter alphabetFilter = 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.toString().toUpperCase(Locale.ROOT);
            } else {
                return "";
            }
        }
    };

EditText にフィルター設定

  1. onCreate 関数内などで実装
MyActivity.java
    InputFilter myFilters[] = {alphabetFilter, new InputFilter.LengthFilter(5)}; // 大文字+アルファベットフィルタ+長さフィルタ

    EditText targetEditText = findViewById(R.id.edittext_target);
    targetEditText.setFilters(myFilters);

実機テスト

キーボードにて数字入力ができない事、長さの制限がされていること、
小文字を入力した場合に大文字に自動変換されることを確認します。

以上、お疲れ様でした!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0