Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 达到maxLength后如何更改最后一个数字_Java_Android_Xml - Fatal编程技术网

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

Java 达到maxLength后如何更改最后一个数字,java,android,xml,Java,Android,Xml,在EditText上,我使用的是android:maxLength=“3”,其中数字仅作为.xml中的输入 但是当达到限制并且用户继续单击时,数字保持不变 我想在用户继续单击时更改最后一位数字 样本: 用户单击3个数字=456 在第四次单击“0”=450 (前两个数字保持不变,但最后一个数字会随着每次点击而改变,直到他确认数字)android:maxLength=“n”限制用户在达到最大长度后按下编辑文本 因此,如果要在末尾添加上次按下的数字,并删除EditText中当前数字的第一位,请将and

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

我想在用户继续单击时更改最后一位数字

样本: 用户单击3个数字=456 在第四次单击“0”=450 (前两个数字保持不变,但最后一个数字会随着每次点击而改变,直到他确认数字)

android:maxLength=“n”
限制用户在达到最大长度后按下编辑文本

因此,如果要在末尾添加上次按下的数字,并删除
EditText
中当前数字的第一位,请将
android:maxLength
值设置为大于n的数字。(就您的情况而言,n=3)

然后使用
EditText
中的数字执行您想要的操作


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

中。最后,我自己找到了答案,这是适合我的解决方案

在使用.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"
    ... />

欢迎来到StackOverflow。在询问之前,请仔细阅读文档并在StackOverflow中搜索类似问题!