私は、EditTextに入力された文字数を制限する必要があるという要件があります。これは私の.xmlレイアウトファイルのEditTextの属性android:maxLengthで簡単に実現できます。emoji入力でedittextの最大文字数を制限する方法は?
私の問題は、私のEditTextはユーザーにemojisの入力を許可することです。さてキャッチは、絵文字の一部の長さは、だから、時々、2時には1であるが、アンドロイド:maxLengthの= 1は、私が正しい長さを得ることができます= 2
長の絵文字を入力することはできません。私はそうのようなInputFilter使用してみました
Character.codePointCount(charSequence.toString(), 0, charSequence.toString().length())
:Characterクラスのこの方法では、(1としてカウント各絵文字付き)列
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の最大文字数の制限を正しく実装するのに手伝ってもらえますか?
このコードをのEditTextため 'TextWatcher'を使用してみてくださいとonTextChanged' – Developer