报错日志:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.edittextdemo, PID: 9528
    java.lang.IllegalStateException: focus search returned a view that wasn't able to take focus!
        at android.widget.TextView.onKeyUp(TextView.java:7591)
        at android.view.KeyEvent.dispatch(KeyEvent.java:2788)
        at android.view.View.dispatchKeyEvent(View.java:11780)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1845)

问题分析:
点击下一步时,由于系统没有找到下一个聚焦的EditText,所以引起奔溃

当我们处在recyclerView的最后一个item中的最后一个edittext的时候此时下一项按钮会变成完成按钮,因为系统知道我们处在最后一个item的最后一个edittext,所以会自动变成完成按钮,此时点击完成按钮会收起软键盘

当我们处在recyclerView的非最后一个item的时候 即使我们处在当前item的最后一个edittext,此时系统不确定当前item之后是否还有edittext,所以软键盘的按钮还是下一项按钮,此时点击就会自动寻找下一个可以获取焦点的View,如果找不到就会报上边的错误

解决方案:
1、给Edittext设置 android:imeOptions="actionDone"
2、为输入框控件设置空的 OnClickListener
3、给输入框控件设置一个空的 OnEditorActionListener,其中方法直接返回 true

posted on 2023-04-27 09:37  毕哥  阅读(30)  评论(0编辑  收藏  举报