我想在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);
}
每按一次键,textview都会设置一个新字符,而上一个字符会被覆盖。 此外,如果按下退格键,则会删除附加的最后一个字符
有没有办法对textview执行此操作?
答案 0 :(得分:5)
您可以使用
textView.append("" + character);
或者
textView.setText(textView.getText().toString() + character);
的文档
似乎它可能会导致this question所描述(并修复)TextView()中的额外填充。
您也可以查看它。
<强>更新强>
检测退格:
您可能想要添加一些安全检查(如字符串长度和不同的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);
}
}