kojiko-android’s blog

開発中にハマった時の解決策や、忘れがちなことを残しておきます。

EditText等で、バックスペースの入力を検出する

EditTextの入力中に、ソフトキーボードのバックスペースキーが押されたときのイベントの検出は、以下のようにします。

mEditText.setOnKeyListener(new View.OnKeyListener() {
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {

        if (event.getAction() == KeyEvent.ACTION_DOWN){

            if (keyCode == KeyEvent.KEYCODE_DEL){
                       
            //    バックスペースが押された

            }
        }
        return false;
    }
});

単純に、「押された時」を知るための方法です。
KeyEvent.ACTION_DOWNまたはACTION_UPのどちらかを判別しないと、
タップした時と指を離した時の2回、イベントが呼ばれてしまいます。