我有一个 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) {
}
答案 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
或首先必须删除减号。