📜  仅反应本机 textInput 数字 (1)

📅  最后修改于: 2023-12-03 15:21:51.251000             🧑  作者: Mango

仅反应本机 textInput 数字

简介

在某些场景下,我们可能需要限制 Text Input 中输入的字符类型为数字。本文将介绍如何实现仅反应本机 textInput 数字的功能。

实现方式

我们可以通过添加监听事件,筛选输入的字符类型来实现仅反应本机 textInput 数字的需求。以下是一个简单的实现方式:

EditText editText = findViewById(R.id.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 (!s.toString().matches("\\d*")) {
            editText.setText(s.toString().replaceAll("[^\\d]", ""));
            editText.setSelection(0);
        }
    }

    @Override
    public void afterTextChanged(Editable s) {}
});

该代码会在 EditText 的输入内容发生变化时,将输入的内容筛选为数字。\d*表示匹配任意数字,[^\\d]表示匹配任意非数字。

当输入的内容不为数字时,我们将 EditText 中的内容替换为仅包含数字的字符串,并将光标移至字符串开头,以达到仅反应本机 textInput 数字的结果。

总结

通过添加监听事件,我们可以轻松实现仅反应本机 textInput 数字的需求。这种方式可以应用于多种场景,例如金额输入、密码重复输入等。