editTextの一部の文字を制限する方法

ニアズ

このメッセージを「重複」としてマークすることを急がないでください。適切な例が見つかりません。editTextの文字「{」を制限したいとします。

私のコードのいくつかの変種を考えてみましょう。私はエミュレーターでのみそれらを試しました。

       editName.addTextChangedListener(new TextWatcher() {
        public void afterTextChanged(Editable s) {
            String txt=s.toString();
            int len=txt.length();
            toastDebug("len="+myIntToStr(len));
            if (len>0) {
                try {
                    int pos=txt.indexOf("{");
                    if (pos>=0) s.replace(pos,pos+1,"");
                }
                catch(Exception e) {}
            }
        }

「{」をすばやく入力すると、「stackOverFlow」がクラッシュします。「abcd {{{{{{{」」とゆっくり入力するとします。最初のビューでは問題ないように見えます。editTextに「{」はありません。しかし、バックスペースを入力すると、「abcd」は削除されず、非表示の「{{{{{」」も削除されます。

「afterTextChanged」内のeditTextを変更しようとしました。以下のコードは、stackOverflowErrorを再び引き起こします。

            public void afterTextChanged(Editable s) {
            String txt=s.toString();
            int len=txt.length();
            if (len>0) {
                try {
                   editName.setText(txt)
                   or
                   s.clear
                   s.append(txt)
                }
                catch(Exception e) {}
            }
        }

このようなコードを使用した多くの例では、「{」と入力すると、editTextがクリアされます。

さて、私はこのコードを次のように変更しました:

    editName.setFilters(new InputFilter[] { filterName });

    private InputFilter filterName = new InputFilter() {
    @Override
    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
        if (source==null) return null;
            return source.toString().replace("{","");
    }
};

今では動作します。しかし、私のandroid:maxLength = "25"は機能しません。任意の数の文字を入力できます。

そのため、editTextで単純な文字を制限する方法に戸惑っています。何か案は?ありがとう!

ユーザー

ウィジェットにをEditText設定し、TextWatcher以下のロジックを挿入することで、ユーザーがに入力できる文字を制限できます。

// we are interested in this callback
@Override
public void afterTextChanged(Editable s) {
    String result = s.toString().replaceAll("\\{", "");
    if (!s.toString().equals(result)) {
         edit.setText(result); // "edit" being the EditText on which the TextWatcher was set
         edit.setSelection(result.length()); // to set the cursor at the end of the current text             
    }
}

\\ので、(と他の文字のために)必要とされる{文字は、パターンで特別な意味を持っています。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

一部の文字を特殊文字で制限する

分類Dev

一部の特殊文字を制限する正規表現

分類Dev

Accessの一部の列のみにアクセスを制限する方法

分類Dev

UbuntuVPS>一部のユーザーのopenerpを制限する

分類Dev

UbuntuVPS>一部のユーザーのopenerpを制限する

分類Dev

python文字列の一部の文字を大文字にする方法

分類Dev

一部の固定サーバーでのnpmの公開を制限する

分類Dev

正規表現を持つ特定の文字列の一部でない限り、文字を照合する方法

分類Dev

一部の公開 Web サイトへのアクセスを制限する方法

分類Dev

一部のデータへのユーザーアクセスを制限する方法

分類Dev

文字列内の文字列の一部を抽出する方法

分類Dev

文字列から一部の文字を削除する方法

分類Dev

文字列の一部だけを大文字にする方法は?

分類Dev

JSONの文字列の一部を変換する方法は?

分類Dev

文字列内の文の一部を選択する方法(C ++)

分類Dev

可変長の文字列の一部を削除する方法

分類Dev

列値の文字列の一部を無視する方法

分類Dev

文字列の一部を削除する

分類Dev

文字列の一部を抽出する

分類Dev

文字列の一部を抽出する

分類Dev

文字列の一部を取得する

分類Dev

文字列の一部を抽出する

分類Dev

文字列の一部を取得する

分類Dev

最初の文字または以前の文字の出現に基づいてパターンの一部を制限する

分類Dev

vbaを使用して文字列の一部を保持する方法

分類Dev

PHPを使用して文字列の一部を取得する方法

分類Dev

文字列の一部を削除する方法は?

分類Dev

Javaで文字列の一部を取得する方法は?

分類Dev

iOSで文字列の一部を太字にする方法は?

Related 関連記事

  1. 1

    一部の文字を特殊文字で制限する

  2. 2

    一部の特殊文字を制限する正規表現

  3. 3

    Accessの一部の列のみにアクセスを制限する方法

  4. 4

    UbuntuVPS>一部のユーザーのopenerpを制限する

  5. 5

    UbuntuVPS>一部のユーザーのopenerpを制限する

  6. 6

    python文字列の一部の文字を大文字にする方法

  7. 7

    一部の固定サーバーでのnpmの公開を制限する

  8. 8

    正規表現を持つ特定の文字列の一部でない限り、文字を照合する方法

  9. 9

    一部の公開 Web サイトへのアクセスを制限する方法

  10. 10

    一部のデータへのユーザーアクセスを制限する方法

  11. 11

    文字列内の文字列の一部を抽出する方法

  12. 12

    文字列から一部の文字を削除する方法

  13. 13

    文字列の一部だけを大文字にする方法は?

  14. 14

    JSONの文字列の一部を変換する方法は?

  15. 15

    文字列内の文の一部を選択する方法(C ++)

  16. 16

    可変長の文字列の一部を削除する方法

  17. 17

    列値の文字列の一部を無視する方法

  18. 18

    文字列の一部を削除する

  19. 19

    文字列の一部を抽出する

  20. 20

    文字列の一部を抽出する

  21. 21

    文字列の一部を取得する

  22. 22

    文字列の一部を抽出する

  23. 23

    文字列の一部を取得する

  24. 24

    最初の文字または以前の文字の出現に基づいてパターンの一部を制限する

  25. 25

    vbaを使用して文字列の一部を保持する方法

  26. 26

    PHPを使用して文字列の一部を取得する方法

  27. 27

    文字列の一部を削除する方法は?

  28. 28

    Javaで文字列の一部を取得する方法は?

  29. 29

    iOSで文字列の一部を太字にする方法は?

ホットタグ

アーカイブ