我正在制作一个Android应用程序,它将用户的复数作为输入。我为此目的使用EditText
。我怀疑的是我使用输入类型作为数字和小数。我想在EditText
小部件中添加名为" i"(对于复杂)的额外字符。
例如我想添加下面的复合作为输入。如何带来这个"我"在软键盘??
5 + i 7
答案 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"