如何附加到textview&从textview删除最后一个字母?

时间:2016-02-24 10:57:32

标签: android textview

我想在android中的textview中添加文本,但是当按下退格键时,应删除最后一个字符。

  • 使用软键盘
  • 动态创建textview
  • 在发送/按下软键的键时更新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执行此操作?

1 个答案:

答案 0 :(得分:5)

您可以使用

textView.append("" + character);

或者

textView.setText(textView.getText().toString() + character);

这是TextView.append()

的文档

似乎它可能会导致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);
    }
}