TextInputEditText显示数字键盘,但也允许/



我一直在尝试调整我的TextInputEditText,它当前显示了一个数字键盘(它在xml中有android:inputType="numberDecimal"(,以允许输入/字符(通过单击ui中的一个按钮,将/附加到EditText(。

我想要实现的是:一个数字键盘&允许在EditText中输入/

我所尝试的一切要么没有显示数字键盘,要么不允许我将/添加到EditText

我尝试过的东西:

  1. android:digits="0123456789./"添加到xml

结果:它仍然是一个数字输入,不会让我.append("/")

  1. 在xml中设置android:inputType="text",并在活动的onCreate()中设置以下内容
input.setFilters(new InputFilter[] {(src, start, end, dst, dstart, dend) -> {
if(src.toString().matches("[0123456789./]+")){
return src;
}
return "";
}});

结果:我没有数字键盘(尽管我只能输入我需要的字符,这很好(

  1. android:inputType="text"android:digits="0123456789./",因为这似乎在各种SO答案上被建议了很多次(我认为一定在某个时候起了作用(

结果:非数字键盘(即常规文本输入键盘(

从xml中删除android:inputTypeandroid:digits,并将下面的内容添加到活动的onCreate()中,似乎可以做到这一点。

input.setKeyListener(DigitsKeyListener.getInstance("0123456789./"));

然而,我并不完全清楚这是否应该或将始终有效-请参阅以下DigitsKeyListener文档中的注释

对于KeyListener的所有实现,这个类只关心硬件键盘。软件输入方法没有义务触发此类中的方法。

来源:https://developer.android.com/reference/android/text/method/DigitsKeyListener

相关内容

  • 没有找到相关文章

最新更新