質問: editText.getText().toString(); if (textNow.length() > 0){ editText.setText(textNow.substring(0,textNow.length()-1)); editText.setSelection(textNow.length()-1); } } return true; } }); ``` ### 'editText.setText(textNow.substring(0,textNow.length()-1));' の**-1**の部分がおかしいのかと思い、 'editText.setText(textNow.substring(0,textNow.length()));' と書き直したところ、今度は一文字も削除されなくなりました。 自分でいろいろと試したのですが、ダメでした。 この場合、どこの部分が間違っているのでしょうか。 よろしければ、ご回答お願いいたします。
回答: 最初のコードであっています。ただし、onKeyは指が触れた時と指が離れた時の二回呼ばれます。そのため二文字消えていたのでしょう。 KeyEvent#getActionメソッドをして、ACTION_DOWNかACTION_UPのどちらかで処理をするようにしましょう。