在三星手机上,与其他Android设备不同,下面显示的代码不起作用,为什么?

时间:2019-07-01 07:45:22

标签: android kotlin samsung-mobile onkeylistener

我通过OnKeyListener在EditText字段中输入文本创建了限制。该代码可在三星以外的所有其他设备上使用。

由于某些原因,Samsung设备上的按键代码输出无法正常工作。

需要编辑实时输入。

massEditText.setOnKeyListener(object: View.OnKeyListener{
            override fun onKey(v: View, keyCode: Int, event: KeyEvent): Boolean
            {
                Mark.setText(event.action.toString())
                if(event.action == KeyEvent.ACTION_DOWN)
                {
                    provider.setText(keyCode.toString())
                    if(keyCode == KeyEvent.KEYCODE_DEL)
                        return false;

                    if(keyCode == KeyEvent.KEYCODE_0 && Mass.text.toString().length < 1)
                        return true


                    val number: String = (keyCode - 7).toString();

                    if(Mass.text.toString().length > 0)
                    {
                        var resultNumber: String = "";
                        for(i in Mass.text.toString())
                        {
                            resultNumber+=i;
                        }
                        resultNumber+=number;
                        if(resultNumber.toInt() !in 1..40)
                        {
                            return true;
                        }
                    }
                }
                return false;
            }
        })

1 个答案:

答案 0 :(得分:0)

这是因为按照this document's setOnClickListener,仅在按下硬件键时有效。 我想知道,因为此代码可在其他设备上运行。我不知道为什么

因此,您可以使用addTextChangeListener代替setOnClickListerner来解决此问题。

尝试让我知道这是否有效。 谢谢。