输入EditText的类型

时间:2014-03-11 19:19:52

标签: android android-edittext

我正在制作一个Android应用程序,它将用户的复数作为输入。我为此目的使用EditText。我怀疑的是我使用输入类型作为数字和小数。我想在EditText小部件中添加名为" i"(对于复杂)的额外字符。

例如我想添加下面的复合作为输入。如何带来这个"我"在软键盘??

5 + i 7

3 个答案:

答案 0 :(得分:0)

在您创建EditText的XML中,您可以将输入类型设置为包含文本以及以下内容:

android:inputType="numberDecimal|text"

请注意,这将允许用户存储其他字母 - 您可能希望在运行时进行一些额外的检查以防止这种情况。

答案 1 :(得分:0)

尝试为EditText编写此类过滤器:

public class ComplexNumbersFilter implements InputFilter {
    @Override
    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
        for (int i = start; i < end; i++) {
            char character = source.charAt(i);

            if (!(Character.isDigit(character) || character == 'i')) {
                return "";
            }
        }

        return null;
    }
}

然后在Activity(或Fragment或某处):

complexEditText.setFilters(new InputFilter[]{ new ComplexNumbersFilter() });

如果您输入整个数学运算,您还应该添加数学符号来过滤(+, - ,/,*等)

答案 2 :(得分:0)

InputFilter将是一种方法,但我认为最简单的解决方案是设置:

android:digits="0123456789i"
相关问题