所以我不想拥有一个可以自动执行某些操作的editText。
首先,它应该只允许数字作为插入。
第二个,在我看来更难想的是当用户插入例如5个数字时添加一些符号。例如,我写道:
12345
然后程序应该添加一个标志
12345-
现在我可以输入更多。
12345-6789
我在使用EditText搜索preifine文本,但我没有发现任何有用的内容......
答案 0 :(得分:2)
1)在xml中添加android:inputType="number"
对于2)您可以将两个不同的edittexts分隔为 - 和
xml中的android:maxLength="5"
以后加入值
虽然我确信必须有更好的方法(2)
答案 1 :(得分:0)
对于2)你不能检查onKeyDown (int keyCode, KeyEvent event)
?
因此,当用户按下按钮时,您可以使用此功能计算编辑文本的长度,如果长度等于5,则插入所需的字符。
就像注释一样,当你将它定义为只是数字时,我还没有尝试在edittext中插入“ - ”符号。
答案 2 :(得分:0)
所以我找到了菲利普勋章的解决方案。你必须使用过滤器才能这样做。我的代码现在是这样的:
InputFilter filter = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
if(end==0){
if(is_minus){jis_minus=false;}
else number--;
}
for (int i = start; i < end; i++) {
if (!Character.isDigit(source.charAt(i))) {
return "";
}
else{
number++;
}
if(number==5)
{
is_minus=true;
return (source.charAt(i)+"-");
}
}
return null;
}
};
之后你只需要过滤到你想要的文本框......