按下键后如何控制edittext中的文本?

时间:2019-05-08 10:35:54

标签: java android

我想控制Android Studio Java中通过EdiText输入的文本,例如:

用户按下“ 1”时,EdiText中会出现“ 10”

当用户按下'R'或其他EdiText上有一定数量的字符时,则什么也没有发生(没有文本添加到EdiText上)等等。

也许可以使用TextWatcher,但是我也希望规则在使用Edittext.setText()时不起作用。

1 个答案:

答案 0 :(得分:2)

它不能由TextWatcher完成,但可以由InputFilter完成,请参见:

private InputFilter filter = new InputFilter() {

    @Override
    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {

        if (source != null && yourString.contains(("" + source))) {
            return "";
        }
        return null;
    }
};

EditText中使用此过滤器,例如:

editText.setFilters(new InputFilter[] { filter });

因此,您可以控制用户何时在EditText中输入新字符。