2015-06-25 9 views
6

Я хочу определить, содержит ли мой EditText смайлик (смайлики) или нет. Но я понятия не имею, как их обнаружить.Как обнаружить смайлики в EditText в android

+0

от similes Я имею в виду смайлики. –

+0

Вы пробовали печатать смайлики в edittext и видеть, какой текст он содержит с помощью EditText.getText() –

ответ

1

Если по simile вы имеете в виду фигура речи, вы можете использовать .getText() и String метод .contains(String), чтобы проверить, содержит ли она Струны «как» или «как».

Отрывок:

EditText myEditText = (EditText)findViewById(R.id.myEditText); 
String input = myEditText.getText(); 
if(input.contains("like") || input.contains("as")) 
{ 
    //code 
} 
+0

от similes Я имею в виду смайлики. –

+1

Я думаю, вы имеете в виду смайлики. Совсем совсем другое – Kuffs

+0

Я очень сожалею об этом, но теперь я исправил вопрос –

-1

Это зависит от того, как вы реализуете 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.... 
} 
+0

Я хочу, чтобы определить, присутствуют ли смайлики или нет, а затем при отправке на сервер я хочу удалить их, чтобы насколько велика была карта similes, а также этот метод будет жестко запрограммирован, если я проверю все смайлики путем построения карты смайликов и кода. –

16

Чтобы отключить 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() способ.

+1

это действительно помогает. –

+0

Но если вы используете фильтр, есть еще одна ошибка, которая будет существовать. Сначала введите что-нибудь, затем введите emoji, затем нажмите обратно пространство, а 2 символа будут удалены вместо 1 – HendraWD

+1

Приятно, но, к сожалению, это также исключает множество других специальных символов, таких как © ® ™, китайские символы и даже тактильный алфавит. – 0101100101

 Смежные вопросы

  • Нет связанных вопросов^_^