我在 EditText 框上有一个 TextWatcher。当用户键入时,我将 EditText 框上的任何内容设置为按钮标签。
EditText et = rootView.findViewById(R.id.userInput);
et.addTextChangedListener(this);
...
@Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override public void afterTextChanged(Editable s) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Button btn = (Button) rootView.findViewById(R.id.myButton);
btn.setText(s.toString());
//btn.setText("\u00A9");
}
但我不知道如何编写unicode 符号。注释行在未注释时将Button
文本设置为版权符号 © 。尽管在 EditText 框中输入相同的 unicode 代码不起作用。我尝试在 EditText 中输入双反斜杠,仍然不好。
注意:与此无关,btn.setText(s)
不使用该toString()
部分时,按钮中的文本带有下划线。
澄清 由于一些评论和答案(现已删除),我意识到我并不清楚。让我改写一下:
我不想以任何方式干扰用户输入文本。现在,当用户在 EditText 中输入“Hello \u0089”时,我使用以下行将其复制到 Button 文本中:
btn.setText(s.toString());
它显示为"Hello \u0089"。我期待“你好‰”。为什么?因为如果我运行一个小测试并使用这一行:
btn.setText("Hello \u0089");
它显示为"Hello ‰"。那么,使 unicode 在直接方法中正确显示但在通过 EditText 输入时不显示的区别是什么?