[英]How can I force user to enter emoji only in edittext
I'm using androidx.emoji.widget.EmojiEditText. 我正在使用androidx.emoji.widget.EmojiEditText。 I want to force user to enter only emojis here. 我想强制用户仅在此处输入表情符号。 And limit him to max 3 emojis. 并限制他最多3个表情符号。 How can I do something like this? 我该怎么做? I tried to use external emoji keyboard that cancels the soft keyboard and shows up but didn't work properly. 我尝试使用外部表情符号键盘,该键盘取消了软键盘并显示但无法正常工作。
<androidx.emoji.widget.EmojiEditText
android:id="@+id/etEmoji"
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_margin="10dp"
android:hint="Enter Emoji"
android:inputType="textShortMessage"
android:background="@android:color/transparent"/>
Below class will only allow Emojis and symbols. 下面的课程仅允许使用表情符号和符号。
public class CustomEditText extends EditText {
public CustomEditText(Context context) {
super(context);
init();
}
public CustomEditText(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public CustomEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
setFilters(new InputFilter[]{new EmojiIncludeFilter()});
}
private class EmojiIncludeFilter implements InputFilter {
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
for (int i = start; i < end; i++) {
int type = Character.getType(source.charAt(i));
if (type != Character.SURROGATE && type != Character.OTHER_SYMBOL) {
// Other then emoji value will be blank
return "";
}
}
return null;
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.