ユーザーが(スクリーンキーボードの)「DEL」キーをクリックしたときのアクションを変更しようとしています。コードは次のとおりです
ed.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DEL) {
if(contadorcor == 0){
String output = correctOutput(String.valueOf(ed.getText()));
ed.setText(output);
ed.setSelection(num);
contadorcor++;
}
}
contadorcor = 0;
return false;
}
});
public static String correctOutput(String s) {
String input = s;
int pos = 0;
for (int i = 0; i < input.length(); i++) {
if(input.charAt(i) != ' ') {
if(input.charAt(i) != '_') {
pos = i;
}
}
}
String output = "";
for (int i = 0; i < input.length(); i++) {
if(i != pos) {
output = output + String.valueOf(input.charAt(i));
} else {
output = output + "_";
}
}
num = num - 2;
return output;
}
なぜ私がこれを行うのかを理解するには、「_ _ _ _ _ _ _ .....」のような未知の単語があり、ユーザーが文字を推測しようとして文字を削除すると、「THISIK |_ _ ... "そして「K」を修正したいのですが、カーソルが次の「アンダースコア」の先頭にある場合は、「k」を削除して「アンダースコア」に置き換えてから、そこにカーソルを置きます。「これ |_ _ _ _ ....」
しかし、削除キーを押すと、このアクションが2回行われ、2文字が削除されます。それがキーダウンとキーアップをキャプチャしていると思いますが、それが繰り返される理由ですが、修正方法がわかりません。ある種のカウンターを作ろうとしましたが、それも機能していません
前もって感謝します。