android - 在 EditText 中关闭片段 onKeyListener
问题描述
对于比我更有经验的人来说,这可能是一个小问题(我从两个月开始就使用 Android),但我真的不明白为什么 OnKeyListener 中的同一行代码不起作用。
例如,我可以通过单击 Fragment 的 Quit 按钮来关闭我的 Fragment,然后我可以返回到我的 Activity。
btnAbbrechen.setOnClickListener {
activity?.supportFragmentManager?.beginTransaction()?.remove(this)?.commit() // works
}
无论如何,如果我在同一个片段的 EditText 字段中使用相同的代码,片段将不会关闭。
eTPalFussNr.apply {
requestFocus()
setOnKeyListener(View.OnKeyListener { _, keyCode, event ->
if (keyCode == KeyEvent.KEYCODE_ENTER && event.action == KeyEvent.ACTION_DOWN) {
// activity?.supportFragmentManager?.popBackStack() // nothing happens
activity?.supportFragmentManager?.beginTransaction()?.remove(PalFussFragment())?.commit() // nothing happens
return@OnKeyListener true
}
false
})
}
我关注了所有关于 SO 的类似问题的帖子,但找不到正确的答案。所以,请告诉我我错过了什么。
先感谢您。
解决方案
您应该删除this@PalFussFragment
而不是尝试删除的新实例PalFussFragment()
requireActivity().supportFragmentManager.beginTransaction()
.remove(this@PalFussFragment)
.commit()
更喜欢使用requireActivity()
而不是activity?
直接使用以确保片段始终附加到活动。
推荐阅读
- c# - C#异步等待不起作用winforms ui冻结
- javascript - 移动 Safari 图像捕获的替代方案
- algorithm - Dijkstra 的双向实现
- java - android中有什么方法可以让我在android中同时播放两个音频?一个在我的应用程序上,一个在另一个后台应用程序上
- gramex - 401 无效令牌/handler.xsrf_token 与 cookie 不匹配
- names - 对同一个表或数组使用不同名称的原因是什么?
- iframe - 如何接受带有赛普拉斯的 iframe 触发的窗口确认
- javascript - JQuery在功能中禁用单页滚动
- python-3.x - 如何在一帧中同时调整多个不同尺寸的图像?
- java - 如何在 pom.xml 中指定 python 文件版本?