KeyEvent 和 EditorInfo 有什么区别?
What is the difference between KeyEvent and EditorInfo?
当我遇到 KeyEvent
和 EditorInfo
时,我正在学习 textView.setOnEditorActionListener
。这是我的代码:
actv_search_activity.setOnEditorActionListener(object : TextView.OnEditorActionListener{
override fun onEditorAction(v: TextView?, actionId: Int, event: KeyEvent): Boolean {
if (actionId == EditorInfo.IME_ACTION_SEARCH){
}
return true
}
})
早些时候我尝试使用 if (event!!.action == KeyEvent.KEYCODE_SEARCH)
我从中获得了 NPE。
那么KeyEvent
和EditorInfo
有什么区别呢?
据我所知,KeyEvents 非常基础,
用户在键盘上点击 9 -> KeyEvents ACTION_DOWN, KEYCODE_9 , ACTION_UP
被发送。
EditorInfo 更多地基于“按键”将执行的操作。
EditorInfo.IME_ACTION_SEARCH -> “操作键执行“搜索”操作,将用户带到搜索他们输入的文本的结果(在任何合适的上下文中)。”
两者比较:
KEYCODE_9 就是 9.
IME_ACTION_SEARCH 指的是表示上下文标准做法的关键事件,例如“在页面上查找”允许您键入字符串并搜索该字符串。允许您执行此操作的密钥会发送 IME_ACTION_SEARCH 事件。
通常您没有用于搜索 across 应用程序和 os 版本的指示按钮。
通常情况下,您确实有一个 9 的口述按钮。
编辑器
https://developer.android.com/reference/android/view/inputmethod/EditorInfo
按键事件
https://developer.android.com/reference/android/view/KeyEvent
当我遇到 KeyEvent
和 EditorInfo
时,我正在学习 textView.setOnEditorActionListener
。这是我的代码:
actv_search_activity.setOnEditorActionListener(object : TextView.OnEditorActionListener{
override fun onEditorAction(v: TextView?, actionId: Int, event: KeyEvent): Boolean {
if (actionId == EditorInfo.IME_ACTION_SEARCH){
}
return true
}
})
早些时候我尝试使用 if (event!!.action == KeyEvent.KEYCODE_SEARCH)
我从中获得了 NPE。
那么KeyEvent
和EditorInfo
有什么区别呢?
据我所知,KeyEvents 非常基础,
用户在键盘上点击 9 -> KeyEvents ACTION_DOWN, KEYCODE_9 , ACTION_UP
被发送。
EditorInfo 更多地基于“按键”将执行的操作。
EditorInfo.IME_ACTION_SEARCH -> “操作键执行“搜索”操作,将用户带到搜索他们输入的文本的结果(在任何合适的上下文中)。”
两者比较:
KEYCODE_9 就是 9.
IME_ACTION_SEARCH 指的是表示上下文标准做法的关键事件,例如“在页面上查找”允许您键入字符串并搜索该字符串。允许您执行此操作的密钥会发送 IME_ACTION_SEARCH 事件。
通常您没有用于搜索 across 应用程序和 os 版本的指示按钮。
通常情况下,您确实有一个 9 的口述按钮。
编辑器 https://developer.android.com/reference/android/view/inputmethod/EditorInfo
按键事件 https://developer.android.com/reference/android/view/KeyEvent