如何在达到maxLength后更改最后一个数字

时间:2018-05-29 17:38:35

标签: java android xml

在EditText上我使用android:maxLength =“3”,数字仅作为.xml中的输入 但是当达到限制并且用户继续单击时,该数字保持不变。

我希望在用户继续点击时更改最后一位数字。

示例: 用户点击3个数字= 456 在第4次他点击'0'= 450 (前两个数字保持不变,除了最后一个数字,每次点击都会改变,直到他确认数字为止)

2 个答案:

答案 0 :(得分:1)

最后,我自己找到了答案,这里的解决方案对我有用。

在我使用.append(显示屏幕上的数字)之前的onClick()方法中,我插入了小帮助方法checkLength()来检查和限制超过3个数字。

<。>在.java文件中:

private void checkLength() {
    Editable editable = mNumber.getText();
    int charCount = editable.length();
    if (charCount > 2) {
        editable.delete(charCount - 1, charCount);
    }
<。>在.xml文件中:

<EditText
    ...
    android:maxLength="3"
    ... />

答案 1 :(得分:0)

android:maxLength="n"限制EditText在达到最大长度后获取用户按下的键。

因此,如果您想在最后添加最后按下的数字并删除EditText中当前数字的第一个数字,请将android:maxLength值设置为大于n的数字。 (在你的情况下n = 3)。

然后使用setOnKeyListener按照您的意愿执行EditText中的数字。

setOnKeyListener中使用getText()获取字符串中的数字并根据需要进行更改,然后使用setText()将更改反映在EditText