android - 浓缩咖啡 typeText() 与 editText.setKeyListener(DigitsKeyListener.getInstance(null, false, true));
问题描述
为了帮助 EditText 拒绝不是有效数字的击键,您可以像这样设置 DigitsKeyListener:
myEditText.setKeyListener(DigitsKeyListener.getInstance(null, false, true));
这在手动测试下有效 - 你可以输入42..
,第二个点的击键消失了,就像它从未发生过一样。如果我们帮助用户输入浮点数,那就太好了,因为我们不需要等到他们提交表单然后设置错误。
但我不能 TDD DigitsKeyListener,因为在 Espresso 中这有效:
onView(withId(R.id.my_edit_text)).perform(typeText("42.."));
第二个.
进入现场,所以我不能断言 KeyListener 拒绝了它!
(我可以 TDD设置KeyListener ,但这是对工件而不是功能的编程。)
如果typeText()
绕过 KeyListeners,它似乎在原始击键输入级别起作用,它的意义何在?单独发送每个密钥也没有被过滤:
onView(withId(R.id.my_edit_text)).perform(typeText("4"));
onView(withId(R.id.my_edit_text)).perform(typeText("2"));
onView(withId(R.id.my_edit_text)).perform(typeText("."));
onView(withId(R.id.my_edit_text)).perform(typeText("."));
解决方案
推荐阅读
- javascript - JSLint 中迭代器变量的声明被标记为警告
- delphi - 使用项目相对路径和宏启动 Delphi 主机应用程序
- parameters - Informatica Workflow 无法读取参数文件
- javascript - 按钮是在套接字发射后创建的,但单击时没有任何反应
- python - 扩展烧瓶管理模板时向渲染调用添加参数
- javascript - 如何显示数据库中的每一行数据?
- r - 我怎样才能将这两行代码重复 100 多次?
- javascript - Javascript:settimeout递归无限堆栈增加?
- sql - Oracle查询获取2个日期之间的工作日数,不包括节假日
- python - 能够在抽象类的子类中设置属性