我基本上是在尝试做这个简单的事情:我有一个 Edittext 和一个 TextView。现在我想立即(逐个字符)显示在文本视图的编辑文本中输入的文本。此外,当按下退格键并从编辑文本中删除一个字符时,这也应该发生在文本视图中。
简而言之:我想立即在 textview 中显示来自 edittext 的所有内容。我怎样才能做到这一点?
这是我尝试过的一些代码,但这对我不起作用。当我在带有 Android 4.0 的模拟器上运行它(并使用计算机键盘进行输入)时,每个字符在 textview 中显示两次,并且 edittext 中没有文本。另一方面,当我使用带有 Android 2.3.3 的模拟器(并使用模拟器键盘进行输入)时,textview 中没有文本,但 edittext 工作正常。
在onCreate()
我调用我的方法setListener()
。这看起来像这样:
private void setListener() {
mEdittext.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
String str = mTextview.getText().toString();
if(keyCode == KeyEvent.KEYCODE_DEL && str.length() > 0) {
str = str.substring(0, str.length()-1);
} else {
char newChar = (char)event.getUnicodeChar();
str = str.concat(Character.toString(newChar)) ;
}
mTextview.setText(str);
return true;
}
});
}
有什么想法可以解决这个问题吗?