下面的代码片段来自我的 onOptionsItemSelected 函数。下面的第 2-5 行假设在显示软键盘时隐藏软键盘,否则调用活动的完成功能。
我从堆栈溢出时“如何隐藏软键盘”的答案之一中获得了这段代码。它在我的手机上运行良好,但是当我最近在 Playstore 上提交我的应用程序进行内部测试时,我发现它有时会抛出 NPE。有人可以解释为什么会发生这种情况的逻辑吗?
R.id.done -> {
val view:View? = this.currentFocus!! // throws null pointer exception
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
if (bool && view!=null) {
imm.hideSoftInputFromWindow(view.windowToken, 0)
} else{
finish()
}
return true