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

当有一个带有按钮的RecycerView时,SetFocus不使用硬件键盘在活动的EditText上工作

爱亮
2023-03-14

我有一个带有EditText的Kotlin购物车活动,用户使用蓝牙条形码扫描仪(充当硬件键盘)扫描条形码。当用户在一个项目中扫描时,该项目被添加到RecycerView购物车中,在那里他们可以调整数量(通过CardView行上的按钮)。

当活动第一次开始时,焦点在EditText中,软键盘不存在。然而,当用户扫描一个条形码(CR是由蓝牙条形码扫描仪添加的)时,我无法将焦点自动返回到EditText,以便用户可以扫描下一个条形码。edittext上的setfocus似乎不起作用。焦点实际上被设置为RecycerView CardView行中的一个按钮。

有人有什么建议吗?任何想法都将不胜感激!

谢了!

共有1个答案

尉迟哲瀚
2023-03-14

显然,当检查是否按下Enter键时,焦点的工作方式有所不同。当我使用keyevent.action_down时,无论我怎么尝试都无法使焦点工作。当我使用keyevent.action_up时,焦点就像我期望的那样工作了。

override fun onCreate(savedInstanceState: Bundle?) {
...
        // when using bar code scanner (or PC Keyboard when using Android Emulator), process barcode at Enter on end of barcode scan
        test_editTextSearch.setOnKeyListener(View.OnKeyListener { v, keyCode, event ->
            // If the event is a key-down event on the "enter" button
            if (keyCode == KeyEvent.KEYCODE_ENTER && event.action == KeyEvent.ACTION_UP) {
                searchItems()
                return@OnKeyListener true
            }
            false
        })
}

    fun searchItems() {
        cartItemsList.add(test_editTextSearch.text.toString())
        rvAdapter.notifyDataSetChanged() //Update Screen
        test_editTextSearch.setText("")
        test_editTextSearch.requestFocus()
    }
 类似资料:
  • 我搜索了一个又一个,但我似乎没能抓住AndroidEditText键盘上的“箭头”键。对我来说,正是退格下方的按钮看起来像一个箭头。 我试过使用: 编辑文本: 但当我点击箭头按钮时,什么也没有打印出来。然而,这适用于键盘上的数字。我曾尝试在EditText xml中将箭头按钮更改为“完成”按钮,但这也不起作用。有人知道为什么吗?

  • 问题内容: 在Flutter中是否有任何现成的小部件或从何处开始(https://material.io/guidelines/components/buttons- floating-action-button.html#buttons-floating-action-button-transitions) in Flutter. 问题答案: 这是有关如何使用进行快速拨号的示意图.

  • 问题内容: 我的Android应用有很多按钮。 我的main.xml布局具有三个按钮。 我知道如何使用按钮从一个活动转到另一个活动,但是我不知道如何在一个活动上具有多个按钮,每个按钮启动的活动与另一个活动不同。 例 Main.xml Button1 Button2 Main2.xml 由button1启动 About.xml 由Button2启动 我如何使main.java文件做到这一点? 问题答

  • 我正在使用python 3.4的curses,我需要一个简单的方法来用箭头键计数,每次我按上,x给自己加1,按下,它从自己减去1。

  • 如果我按下呼叫按钮,我会得到一个错误,即出租车没有呼叫,而是转到另一个窗口。 我认为这个错误来自实时数据库。如果你有不同的意见,写下你的答案。 错误:E/AndroidRuntime:致命异常:主进程:com。实例乌兹别克斯坦,PID:8915爪哇。lang.NullPointerException:尝试调用虚拟方法“double android”。地方地方getLatitude()'位于com上

  • 我有一种情况,我打开,我希望在中有光标(保持焦点),但一开始不显示键盘。当且仅当用户按下时,我想显示键盘(光标应该完好无损)