前言
有些需求需要我们自定义View,这个View需要有接收系统键盘输入数据的能力,相信有些同学都是使用onKeyDown的监听方法实现的,但发现有些输入法获取不到数据。其实这个原因是onKeyDown方法主要是监听物理按键的响应,对于虚拟键盘有时是不生效的具体结果取决于各个输入法的实现。那么我们应该如何获取虚拟键盘的输入数据呢?其实大家仔细观察Api 可以发现有两个方法,onCheckIsTextEditor 和 onCreateInputConnection。其实Android中的虚拟键盘和我们的应用程序都是在不同的进程中运行的我们可以使用InputConnection这个类去接收虚拟键盘的数据。
Android输入法和App的数据交互大概的关系
关于这部分上图也只是讲了个大概关系,想要继续深入的同学可以看看下面三篇文章: