【问题标题】:EditText field never gets submittedEditText 字段永远不会被提交
【发布时间】: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


【解决方案1】:

android:imeOptions="actionDone" 添加到布局 XML 中的 EditText。

【讨论】:

    猜你喜欢
    • 2021-04-09
    • 1970-01-01
    • 2016-11-08
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多