我有一个要求,我需要限制在EditText中输入的字符数。我知道使用我的.xml布局文件中的EditText属性android:maxLength可以很容易地实现这一点。
但我的问题是我的EditText也应该允许用户输入表情符号。现在的问题是,一些表情符号的长度有时为2或有时为1.因此, android:maxLength = 1 不允许输入长度为2的表情符号。
我可以使用Character类的方法获得正确的字符串长度(每个表情符号计为1):
Character.codePointCount(charSequence.toString(), 0, charSequence.toString().length())
我尝试使用InputFilter,如下所示:
InputFilter inputFilter = new InputFilter() {
@Override
public CharSequence filter(CharSequence charSequence, int i, int i1, Spanned spanned, int i2, int i3) {
if (Character.codePointCount(charSequence.toString(), 0, charSequence.toString().length()) <= maxCharactersAllowed) {
return null;
} else {
return "";
}
}
};
但是charSequence返回给了我明文和表情符号文本的奇怪结果,所以我用来比较长度的字符串给出了奇怪的结果。
有人可以帮我正确实施EditText接受表情符号字符的最大字符数限制吗?
答案 0 :(得分:2)
谢谢,Joe。在你的帮助下,我找到了这样的解决方案:
var users = NOSQL('db');
users.find().filter(doc => doc.name === 'Report' && doc.entries && doc.entries[0] && doc.entries[0].name === 'Report').callback(function(err, model) {
console.log(err, model);
});