当前位置: 首页 > 知识库问答 >
问题:

EditText字段永远不会被提交

通京
2023-03-14

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

  android:focusable="true"
  android:focusableInTouchMode="true"

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

我的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)
    }

共有1个答案

杜经艺
2023-03-14

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

 类似资料:
  • 问题内容: 看过很多论坛,但没有找到答案…简单的东西,用@PostLoad注释的方法永远不会被调用…通过@EntityListeners添加了侦听器,但问题仍然存在。我正在使用基于SessionFactory的配置。 问题答案: 当使用基于基础的配置时,EJB3 注释不起作用,后期加载方法将永远不会被调用。 使用Hibernate的Interceptor或事件或基于基本的配置。

  • 1)我的plist配置提供背景模式: 2) 在中,我有: 3) 我在委托中声明了协议。 4)我实现了以下方法,但它永远不会被触发。(只有当我用“XCode-”模拟获取时才有效 为什么?这是DP5测试错误吗?我应该雷达这个吗?

  • 我在Visual Studio 2017 Update 3预览版中有以下解决方案,它由作为NetStandard1.4的Xamarin.Forms项目和NetStandard1.4 dotnet Core Services.API项目以及NetStandard1.6 dotnet Core单元测试项目组成。 单元测试项目仅引用服务项目。csproj文件如下所示,其中添加了用于单元测试的MSTest

  • Python的新类型提示功能允许我们键入函数返回的提示… …或保留未指定的返回类型,PEP规定应导致静态分析器假设任何返回类型都是可能的: 任何没有注释的函数都应被视为具有最通用的类型 但是,我应该如何键入函数永远不会返回的提示?例如,键入 hint 这两个函数的返回值的正确方法是什么? 既没有指定

  • 问题内容: 我正在开发游戏,但扫描仪遇到了一个小问题。我收到了一个从未关闭过的资源泄漏扫描程序。 但是我认为我的扫描仪在没有关闭之前就可以正常工作。但是现在不是。有人可以帮我吗? 问题答案: 我假设您正在使用Java 7,因此会收到编译器警告,当您不关闭资源时,通常应在finally块中关闭扫描程序。 甚至更好:使用新的 Try with resource语句 :

  • 问题内容: 我正在使用Flask-WTF: 这是我的表格: 这是控制器: 现在的问题是,如果您查看我的打印语句,它将始终打印已提交的内容,但从不打印有效的内容,并且永远不会执行validate_on_submit()。为什么? 问题答案: 您没有在HTML表单中插入CSRF字段。 添加到模板(docs)后,表单将按预期验证。 验证表单后添加,以查看出现的错误。 在验证之前将为空。在这种情况下,会出