我想在android中的textview中添加文本,但是当按下退格键时,应删除最后一个字符.
这是我的代码:
@Override
public boolean dispatchKeyEvent(KeyEvent KEvent){
keyaction = KEvent.getAction();
if(keyaction == KeyEvent.ACTION_DOWN){
keycode = KEvent.getKeyCode();
keyunicode = KEvent.getUnicodeChar(KEvent.getMetaState() );
character = (char) keyunicode;
textView.setText(""+character);
}
return super.dispatchKeyEvent(KEvent);
}
Run Code Online (Sandbox Code Playgroud)
每按一次键,textview都会设置一个新字符,前一个 字符会被覆盖.此外,如果按下退格键,则会删除附加的最后一个字符
有没有办法对textview这样做?
您可以使用
textView.append("" + character);
Run Code Online (Sandbox Code Playgroud)
要么
textView.setText(textView.getText().toString() + character);
Run Code Online (Sandbox Code Playgroud)
这是TextView.append()的文档
它似乎可能会导致TextView()中的额外填充,如此问题所描述(和修复).
您可能还想检查它.
UPDATE
要检测退格:
您可能想要添加一些安全检查(如字符串长度和不同的null等)
if(keyaction == KeyEvent.ACTION_DOWN){
if(keycode == KeyEvent.KEYCODE_DEL){
// Remove last char from string (like backspace would do)
textView.setText(textView.getText().toString().substring(0, textView.getText().length() - 1));
} else {
textView.append("" + character);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2014 次 |
| 最近记录: |