Android Java-EditText,appendText到inputType数字

时间:2018-11-21 13:36:07

标签: java android android-edittext

我有一个 EditText ,它看起来应该像2018-11-11-1 因此,我想自动添加“-”,因此用户只需键入数字即可。

但是当使用输入类型编号(由于键盘)时,它不会追加,仅适用于输入类型文本。

            <EditText
            android:id="@+id/idEdit"
            android:layout_width="match_parent"
            android:maxWidth="500dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:layout_marginHorizontal="20dp"
            android:layout_below="@+id/imageScroller"
            android:hint="Scheinnummer eingeben"
            android:inputType="number"
            android:imeOptions="actionDone"
            android:layout_centerInParent="true"/>

我在4个字符后附加连字符的方式。

        int len=0;
    @Override
    public void afterTextChanged(Editable s) {
        String str = _idEdit.getText().toString();
        if(str.length()==4&& len <str.length()){//len check for backspace
            _idEdit.append("-");
        }
    }

    @Override
    public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {

        String str = _idEdit.getText().toString();
        len = str.length();
    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
    }

2 个答案:

答案 0 :(得分:0)

您可以试试吗?我不确定,但是我以前用它来显示12.34.56.78文字

 android:digits="0123456789."
 android:inputType="number"

您的代码应类似于xml资源文件中的

 android:digits="0123456789-"
 android:inputType="number"

答案 1 :(得分:0)

您应该将输入类型设置为number(不是强制性的,但它将显示最适合您的键盘的键盘),还应将允许的数字包括-字符。

<!-- this line will show the knumeric keyboard -->
android:inputType="number"
<!-- this line will allow all and only the shown digits to be written -->
android:digits="0123456789-"

注意:将结果文本直接解析为数字不会成功,您将其存储为String或首先必须删除减号。