1

所以我不想有一个 editText 会自动做一些事情。

第一件事是它应该只允许插入数字。

第二个也是我认为更难的想法是,当用户插入例如 5 个数字时会添加一些符号。例如我写:

    12345

然后程序应该添加一个标志

    12345-

现在我可以输入更多了。

    12345-6789

我正在用谷歌搜索 EditText 中的预定义文本,但我发现没有任何用处......

4

3 回答 3

2

对于 1) 添加 android:inputType="number"xml

对于 2)您可以有两个不同的编辑文本,由-和 xml分隔,android:maxLength="5"然后加入值

虽然我确信必须有一些更好的方法来做(2)

于 2012-09-11T12:50:56.897 回答
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; 
        }
};

之后,您只需将过滤器附加到您想要的文本框...

于 2012-09-11T14:18:52.583 回答
0

2)你不能检查onKeyDown (int keyCode, KeyEvent event)吗?

因此,当用户按下按钮时,您可以使用此函数来计算编辑文本的长度,如果长度等于 5,则插入所需的字符。

请注意,当您将其定义为仅数字时,我没有尝试在编辑文本中插入“-”符号。

于 2012-09-11T13:01:43.553 回答