Android Backend/other 进程中的文本输入验证
Android Text Input Validation on Backend/other Process
我对 运行ning 用户在另一个进程中输入 Android (EditText) 的文本输入验证有一些疑问。我知道理想情况下,将它放在同一个应用程序中会更好,但需要在另一个进程上检查输入验证,没有办法绕过这个...
我已经设置了进程间通信,这不是问题。此外,每当用户键入一个键时,我都知道 EditText 的文本输入侦听器,所以这不是问题。这就是问题所在,每次用户输入字符时,我都需要进行 运行 文本验证,如果该字符未通过验证,我需要进行验证,以便永远不会输入该字符。
如您所知,我无法在 UI 线程上执行此检查,但同时我需要 'hault' 用户输入,直到验证完成。我该怎么做呢?我在这里有点迷路了。任何帮助是极大的赞赏。
您可以尝试使用两个远程服务 - 一个用于告知另一个进程用户输入文本,另一个 - 作为远程进程的回调(在您的应用程序中实现)。您绑定到远程服务,注册回调(Google远程服务示例https://android.googlesource.com/platform/development/+/master/samples/ApiDemos/src/com/example/android/apis/app/RemoteService.java)并在此回调中修改编辑文本状态。
还有一种使用 RxJava 库处理用户输入的非常方便的方法——使用 .debounce() 操作符来避免在每个编辑符号后混淆远程进程。
所以我所做的是在 EditText 视图上设置输入过滤器。然后,当我在后端进行检查时,我会保留一些标志集(验证)。我使用此标志检查用户是否在验证完成之前输入了输入。我忽略那里的输入和 return 一个空字符(不插入他们要求的任何内容)。它有点笨重,但它有效。
我对 运行ning 用户在另一个进程中输入 Android (EditText) 的文本输入验证有一些疑问。我知道理想情况下,将它放在同一个应用程序中会更好,但需要在另一个进程上检查输入验证,没有办法绕过这个...
我已经设置了进程间通信,这不是问题。此外,每当用户键入一个键时,我都知道 EditText 的文本输入侦听器,所以这不是问题。这就是问题所在,每次用户输入字符时,我都需要进行 运行 文本验证,如果该字符未通过验证,我需要进行验证,以便永远不会输入该字符。
如您所知,我无法在 UI 线程上执行此检查,但同时我需要 'hault' 用户输入,直到验证完成。我该怎么做呢?我在这里有点迷路了。任何帮助是极大的赞赏。
您可以尝试使用两个远程服务 - 一个用于告知另一个进程用户输入文本,另一个 - 作为远程进程的回调(在您的应用程序中实现)。您绑定到远程服务,注册回调(Google远程服务示例https://android.googlesource.com/platform/development/+/master/samples/ApiDemos/src/com/example/android/apis/app/RemoteService.java)并在此回调中修改编辑文本状态。 还有一种使用 RxJava 库处理用户输入的非常方便的方法——使用 .debounce() 操作符来避免在每个编辑符号后混淆远程进程。
所以我所做的是在 EditText 视图上设置输入过滤器。然后,当我在后端进行检查时,我会保留一些标志集(验证)。我使用此标志检查用户是否在验证完成之前输入了输入。我忽略那里的输入和 return 一个空字符(不插入他们要求的任何内容)。它有点笨重,但它有效。