我正在尝试以一种方式实现表情符号,我会自动用等效的表情符号替换“:)”之类的东西。而且我不确定该怎么做,我找到了一个表情符号UTF代码表,但我不确定我应该如何以编程方式将它们放入EditText:/
inputField=(EditText)temp.findViewById(R.id.inputField);
inputField.addTextChangedListener(new TextWatcher() {
boolean justChanged=false;
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(justChanged) {
justChanged=false;
return;
}
Log.d(s.toString(), s.toString());
if(s.toString().contains(":)")) {
justChanged=true;
inputField.setText(s.toString().replace(":)", "UTF CODE HERE?"));
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
答案 0 :(得分:2)
最简单的方法是将源代码编码为UTF-8,并将所需的表情符号粘贴到代码中。然后,您需要将-encoding UTF-8
传递给javac
。然后,表情符号将在编译时转换为其Unicode点。
E.g。
inputField.setText(s.toString().replace(":)", ""));
或者,您可以使用\uXXXX
表示法在Java字符串中使用UTF-16 Unicode点文字。从合适的Unicode引用站点(例如http://www.fileformat.info/info/unicode/block/emoticons/list.htm),您可以获得UTF-16类型编码或完整的Java转义序列。
E.g。
inputField.setText(s.toString().replace(":)", "\uD83D\uDE00"));