如何让editText插入一些外观

时间:2012-09-11 12:37:56

标签: android android-edittext

所以我不想拥有一个可以自动执行某些操作的editText。

首先,它应该只允许数字作为插入。

第二个,在我看来更难想的是当用户插入例如5个数字时添加一些符号。例如,我写道:

    12345

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

    12345-

现在我可以输入更多。

    12345-6789

我在使用EditText搜索preifine文本,但我没有发现任何有用的内容......

3 个答案:

答案 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; 
        }
};

之后你只需要过滤到你想要的文本框......