I create a restriction on entering text in the EditText field via OnKeyListener. This code works on all other devices except Samsung.
For some reason, the output of key codes on the Samsung device does not work.
Need to edit real-time input.
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;
}
})
That's because as per this document's
setOnClickListener
only works when hardware key press. I wonder because this code is working on other devices. I don't know why.So, you can use
addTextChangeListener
instead ofsetOnClickListerner
to resolve this issue.Try and let me know this works or not. Thanks.