Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android EditText字段永远不会被提交_Android_Android Recyclerview - Fatal编程技术网

Android EditText字段永远不会被提交

Android EditText字段永远不会被提交,android,android-recyclerview,Android,Android Recyclerview,我得到了一个带有多个EditText-字段的RecyclerView。当我尝试编辑其中一个EditText-字段并单击虚拟键盘上的enter键时,焦点向下移动到下一个EditText-字段,这是我不希望发生的事情。我想提交我在第一个EditText-字段中所做的更改,然后关闭键盘。通过向.xml文件中添加以下内容,我成功地关闭了焦点转移: android:focusable="true" android:focusableInTouchMode="true&

我得到了一个带有多个
EditText
-字段的
RecyclerView
。当我尝试编辑其中一个
EditText
-字段并单击虚拟键盘上的enter键时,焦点向下移动到下一个
EditText
-字段,这是我不希望发生的事情。我想提交我在第一个
EditText
-字段中所做的更改,然后关闭键盘。通过向.xml文件中添加以下内容,我成功地关闭了焦点转移:

  android:focusable="true"
  android:focusableInTouchMode="true"
但问题仍然存在,现在更改从未提交,因为我的侦听器从未被调用。如果我在我的
RecyclerView
中删除除一个项目之外的所有项目,一切都会正常工作。我的
RecyclerView
中也有更多的项目,如何才能做到这一点

My
bind
函数在My
UserCardItem.kt
文件中

 override fun bind(viewHolder: ViewHolder, position: Int) {
...
  viewHolder.itemView.creditcard_nickname.setOnEditorActionListener{ _, actionId, _ ->
            if(actionId == EditorInfo.IME_ACTION_DONE){
                saveNickname(viewHolder)
                true
            } else {
                false
            }
        }

android:imeOptions=“actionDone”
添加到布局XML中的编辑文本中。

能否添加侦听器的代码以及与提交功能相关的代码?@muddassirhmed我现在已经添加了相关的代码。谢谢你表现出兴趣你能试着把这个添加到你的编辑文本中吗<代码>android:imeOptions=“actionDone”酷。你能接受我的回答吗?不确定。不过,您可以通过一些代码来实现这一点。
    private fun saveNickname(viewHolder : ViewHolder){
        val nickname = viewHolder.itemView.creditcard_nickname.text.toString()
        userCreditcard.nickname = nickname
        UserCardStore().updateNickname(userCreditcard)
    }