Android OnKeyListener OnKey重复操作
我试图在用户单击“DEL”键(在屏幕键盘上)时修改操作,代码如下Android OnKeyListener OnKey重复操作,android,keylistener,keyevent,Android,Keylistener,Keyevent,我试图在用户单击“DEL”键(在屏幕键盘上)时修改操作,代码如下 ed.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_DEL) { if(contadorcor ==
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;
}
ed.setOnKeyListener(新视图.OnKeyListener(){
@凌驾
公共布尔onKey(视图v、int keyCode、KeyEvent事件){
if(keyCode==KeyEvent.keyCode_DEL){
如果(contadorcor==0){
字符串输出=正确的输出(String.valueOf(ed.getText());
ed.setText(输出);
教育部选举(num);
contadorcor++;
}
}
contadorcor=0;
返回false;
}
});
公共静态字符串输出(字符串s){
字符串输入=s;
int pos=0;
对于(int i=0;i
要理解我为什么这样做,是因为有一个未知的单词,比如“uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu然后将光标放在那里。“这是我的工作……”
但当我按delete键时,会执行两次此操作,并删除2个字母。我发现它捕获了keydown和keydup,这就是为什么它会重复,但我不知道如何修复它。我试着做一些计数器,但也不起作用
提前感谢。在onKey方法中,您有一个参数:event。您可以执行以下操作:
if(event.getAction()==KeyEvent.ACTION_UP){
...
}
else if(event.getAction()==KeyEvent.ACTION_DOWN){
...
}