android - 无法到达 EditText 中的 EditorAction
问题描述
我在我的应用程序中有一个 EditText,我在其中设置了它的 xml android:imeOptions="actionDone"
,它们在我的片段中我试图投射一个应该在完成点击时执行操作的函数,但它没有任何效果,并且软键盘甚至没有关闭..在调试中,按下完成时未达到EditorActionListener ...
哪个可能是它的问题?
在我的片段中,EditorActionListener 如下所示:
private lateinit var txtQta: EditText
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
txtQta = view.findViewById(R.id.txtQta)
txtQta.setOnEditorActionListener { _, i, _ ->
when(i) {
EditorInfo.IME_ACTION_DONE -> {
addArticolo()
true
}
else ->
false
}
}
}
我的编辑文本:
<EditText
android:id="@+id/txtQta"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:autofillHints="qty"
android:text="@string/_1"
android:hint="@string/qta"
android:inputType="number|numberDecimal"
android:padding="15dp"
android:selectAllOnFocus="true"
android:imeOptions="actionDone"
android:singleLine="true"
android:textAlignment="center"
android:textStyle="bold" />
编辑:
实际上,我注册了另一个 EditorActionListener,因此它无法正常工作..
解决方案
您还可以使用关键侦听器:
editText.setOnKeyListener(View.OnKeyListener { v, keyCode, event ->
if (keyCode == KeyEvent.KEYCODE_ENTER && event.action == KeyEvent.ACTION_UP) {
//Perform Code
return@OnKeyListener true
}
false
})
也许对你会更好
推荐阅读
- c - 用于返回结构的 C 宏
- python - 为什么 datetime.datetime.fromtimestamp 引发 OSError: [Errno 22] Invalid argument
- xaml - 将 Xamarin 表单选项卡式页面连接到 XAML
- ember.js - Ember:运行循环:如何知道作业是否已安排或完成
- pagination - @Html.PagedListPager 不在查询字符串中发送页面
- php - Router / URL Matcher 类的问题
- oracle - 如何在 oracle apex 5.0 中将值从一页传递到另一页?
- python - 使用长度不均匀的列表项创建pandas df列?
- sql - 如何在函数中使用全局临时表?
- c++ - C++ 多个 Lua 状态