阅读:5828回复:2
获取当前焦点View的问题
用户的需求一句话也说不清,我就说我的需求吧,我想在PhoneWindowManager.java的 interceptKeyBeforeDispatching() 方法里面,监听一组keyCode, 获取当前View, 查找焦点view 判断如果是EditText就弹出 软键盘,我的代码是这样的:
Log.d(TAG,"keyCode = " + keyCode); 看打印信息是:Log.d("zhao","======focusView : " + focusView.getId()); 这一行报错了,focusView = null 不知道是否可以这这个里面获取焦点View |
|
|
沙发#
发布于:2019-09-28 09:57
通过在PhoneWindowmanger.java文件中使用ams的方法获取栈顶activity,然后通过activity的getwindow().getDecorView();
应该可以实现。 |
|
|
板凳#
发布于:2019-09-28 10:00
研究了一下,我发现这interceptKeyBeforeDispatching里面是按键事件分发的起点,这个时候还没有分发到具体的View , 我改为在TextView 的onKeyDown()里面执行imm.showSoftInput(this, 0); 这样可以在监听到特定的按键后,唤出软键盘。虽然这样还是会有一些问题,但是还好,可以说服客户接受
为什么我想要在interceptKeyBeforeDispatching()里面执行showSoftInput(),后面我再整理一下,这个客户的问题 |
|
|