Я хочу определить, содержит ли мой EditText
смайлик (смайлики) или нет. Но я понятия не имею, как их обнаружить.Как обнаружить смайлики в EditText в android
ответ
Если по simile
вы имеете в виду фигура речи, вы можете использовать .getText()
и String
метод .contains(String)
, чтобы проверить, содержит ли она Струны «как» или «как».
Отрывок:
EditText myEditText = (EditText)findViewById(R.id.myEditText);
String input = myEditText.getText();
if(input.contains("like") || input.contains("as"))
{
//code
}
от similes Я имею в виду смайлики. –
Я думаю, вы имеете в виду смайлики. Совсем совсем другое – Kuffs
Я очень сожалею об этом, но теперь я исправил вопрос –
Это зависит от того, как вы реализуете simleys в вашем EditText. если вы используете motioons, вы можете сделать это, используя трюк. Вы можете установить condtion всякий раз, когда простой плюс вы можете добавить некоторый тип ключевого слова в массивList, и всякий раз, когда смайлик является средством для удаления, вы можете удалить это ключевое слово из arrayList. И, наконец, вы можете проверить этот список, добавляет ли этот simley к нему или нет, обрабатывая элементы массива.
для экс ...
if(Smiley_added){
arraylist.add(smiley_code,i);
}
if(simley_removed){
arraylist.remove(smileycode,i);
}
if(arraylist.get(i).equals("smileyCode")){
do this....
}
Я хочу, чтобы определить, присутствуют ли смайлики или нет, а затем при отправке на сервер я хочу удалить их, чтобы насколько велика была карта similes, а также этот метод будет жестко запрограммирован, если я проверю все смайлики путем построения карты смайликов и кода. –
Чтобы отключить Emoji символов при наборе на клавиатуре я, используя следующий фильтр:
InputFilter filter = new 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));
//System.out.println("Type : " + type);
if (type == Character.SURROGATE || type == Character.OTHER_SYMBOL) {
return "";
}
}
return null;
}
};
mMessageEditText.setFilters(new InputFilter[]{filter});
Если вам нужно только обнаружить, если EditText содержит любой Эмодзи вы может использовать этот принцип (Character.getType()
) в реализации интерфейса android.text.TextWatcher
(в методе onTextChange()
или afterTextChanged()
) или, например, использование простой for
цикл сверху mMessageEditText.getText()
(возвращается CharSequence класс) charAt()
способ.
это действительно помогает. –
Но если вы используете фильтр, есть еще одна ошибка, которая будет существовать. Сначала введите что-нибудь, затем введите emoji, затем нажмите обратно пространство, а 2 символа будут удалены вместо 1 – HendraWD
Приятно, но, к сожалению, это также исключает множество других специальных символов, таких как © ® ™, китайские символы и даже тактильный алфавит. – 0101100101
от similes Я имею в виду смайлики. –
Вы пробовали печатать смайлики в edittext и видеть, какой текст он содержит с помощью EditText.getText() –