【发布时间】:2020-12-21 03:32:21
【问题描述】:
我有一个带有多个 EditText 字段的 RecyclerView。当我尝试编辑其中一个EditText-字段并在虚拟键盘上单击Enter 时,焦点转移到下一个EditText-字段,这是我不希望发生的事情。我想提交我在第一个EditText-field 中所做的更改,然后关闭键盘。通过将以下内容添加到我的 .xml 文件中,我设法关闭了这种焦点转移:
android:focusable="true"
android:focusableInTouchMode="true"
但是问题仍然存在,现在更改永远不会被提交,因为我的监听器永远不会被调用。如果我删除了我的RecyclerView 中的所有项目以外的所有项目,一切都会像我想要的那样工作。如何在 myRecyclerView 中使用更多项目来实现这一点?
UserCardItem.kt 文件中的 bind 函数;
override fun bind(viewHolder: ViewHolder, position: Int) {
...
viewHolder.itemView.creditcard_nickname.setOnEditorActionListener{ _, actionId, _ ->
if(actionId == EditorInfo.IME_ACTION_DONE){
saveNickname(viewHolder)
true
} else {
false
}
}
private fun saveNickname(viewHolder : ViewHolder){
val nickname = viewHolder.itemView.creditcard_nickname.text.toString()
userCreditcard.nickname = nickname
UserCardStore().updateNickname(userCreditcard)
}
【问题讨论】:
-
能否请您添加您的侦听器的代码以及与您的提交功能相关的代码?
-
@MuddassirAhmed 我已经添加了相关的代码。感谢您的关注
-
您可以尝试将其添加到您的 EditText 中吗?
android:imeOptions="actionDone" -
酷。你能接受我的回答吗?
-
不确定。你可以通过一些代码来做到这一点。 stackoverflow.com/questions/41790357/…
标签: android android-recyclerview