在我的Android应用程序中,我想在每次按下键盘上的键时执行一些逻辑,例如,我想评估他们是否键入了一个"魔术短语"。
为了做到这一点,我在我的Activity中覆盖了方法onKeyUp
并试验了它是否通过使它发射Toast来发射。
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
Toast toast = Toast.makeText(this, "Key Down", Toast.LENGTH_LONG);
toast.setGravity(Gravity.TOP, 0, 0);
toast.show();
return super.onKeyUp(keyCode, event);
}
问题是,当我按下键盘上的数字或字母时,Toast没有显示。仅在按下backspace
时显示。这是为什么?
如何开始使用所有按键?
答案 0 :(得分:1)
通过在我的TextChangedListener
字段中添加EditText
来结束解决此问题。
这是我的简单代码,只是用数字计数显示一个小吐司:
EditText passcodeInput = (EditText) findViewById(R.id.passcodeInput);
passcodeInput.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
}
@Override
public void afterTextChanged(Editable editable) {
digitsPressed++;
Toast.makeText(Passcode.this, Integer.toString(digitsPressed), Toast.LENGTH_LONG).show();
}
});