我通过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;
}
})
答案 0 :(得分:0)
这是因为按照this document's setOnClickListener
,仅在按下硬件键时有效。
我想知道,因为此代码可在其他设备上运行。我不知道为什么
因此,您可以使用addTextChangeListener
代替setOnClickListerner
来解决此问题。
尝试让我知道这是否有效。 谢谢。