我尝试在数据库的长字符串中获取表情符号代码,格式如下: 0x1F60A ...所以我可以访问代码,但它将是字符串
首先,我尝试通过执行tv.setText(beforeEmo + getEmijoByUnicode((int)emoKind));
来转换变量,但Android Studio暗示:“无法将'java.lang.String'转换为int”...
getEmijoByUnicode 方法是:
public String getEmijoByUnicode(int unicode) {
return new String(Character.toChars(unicode));
}
所以我尝试了这个:
tv.setText(beforeEmo + getEmijoByUnicode(Integer.parseInt(emoKind)));
但它与NumberFormatError崩溃。有没有办法让表情符号出现在我的文本中?
答案 0 :(得分:3)
尝试
Integer.parseInt("1F60A", 16);
或
Long.parseLong("1F60A", 16);
将字符串转换为int或long。所以你必须摆脱" 0x",就像这样
getEmijoByUnicode(Integer.parseInt(emoKind.substring(2), 16));