1

10 進数で署名された EditText があります (そのため、コンマを書くことはできません)。TextWatcher を配置しましたが、書き込みが許可されている文字のみをリッスンします。

ただし、ユーザーがトーストを表示するためにコンマを書き込もうとしたときにキャッチしたいです。

どうすればそれが可能ですか?

ありがとうございました

4

3 に答える 3

1

これを試して、このように編集テキストで文字を指定してください android:digits="abcde.....012345789"

于 2016-05-23T07:16:55.567 に答える
1

TextWatcher(あなたが言ったように)にを添付できEditTextますが、if/elseステートメントを実装して、の値を確認できますEditText。できることの例を次に示します。 editText.addTextChangedListener(new TextWatcher() {

   @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {

    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        if(String.valueOf(s).contains(",")) {
            String editTextContent = String.valueOf(editText.getText());
            editText.setText(editTextContent.replace(",", ""));
            Toast.makeText(getApplicationContext(), "Enter a valid input", Toast.LENGTH_SHORT).show();
        } else {
            // User entered something valid
        }
    }

    @Override
    public void afterTextChanged(Editable s) {

    }
});

これにより、ユーザーはカンマを入力できなくなります。それが役に立てば幸い!

于 2016-05-20T21:29:23.970 に答える