我对运行文本输入验证有一些疑问,用户在另一个进程中在Android(EditText)中键入。我知道理想情况下最好将它放在同一个应用程序中,但需要在另一个进程上检查输入验证,不管怎样......
我已经进行了进程间通信设置,这不是问题。另外,只要用户键入一个键,我就知道EditText的文本输入监听器,这不是问题。这是问题所在,我需要在每次用户输入一个字符时运行文本验证,如果字符没有通过验证,我需要这样做,以便从不输入字符。
如你所知,我无法对UI线程进行检查,但同时我需要“hault”用户输入,直到验证完成。我该怎么做呢?我在这里有点迷失。任何帮助是极大的赞赏。
答案 0 :(得分:0)
您可以尝试使用两个远程服务 - 一个用于告诉另一个进程有关用户输入文本而另一个用于远程进程的回调(在您的应用中实现)。绑定到远程服务,注册回调(Google远程服务示例https://android.googlesource.com/platform/development/+/master/samples/ApiDemos/src/com/example/android/apis/app/RemoteService.java)并修改此回调中的编辑文本状态。 使用RxJava库处理用户输入也非常方便 - 使用.debounce()运算符不会在每个编辑过的符号后进行远程处理。
答案 1 :(得分:0)
所以我做的是在EditText视图上设置一个输入过滤器。然后,当我在后端进行检查时,我会设置一些标志(验证)。如果用户在验证完成之前输入输入,我会使用此标志作为检查。我忽略了输入并返回一个空字符(它不会插入任何他们要求的内容)。它有点笨重,但它的工作原理。