0

Я хочу скрыть emojis и авто предложения с клавиатуры программно. Он работает в некоторых устройствах Android, но не во всех устройствах. вот мой код для скрытия авто предложений:Как отключить emojis программно в android

   txtSingupemail.setInputType(InputType.TYPE_TEXT_VARIATION_FILTER | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS 
       |InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); 
       txtSignuppwd.setInputType(InputType.TYPE_TEXT_VARIATION_FILTER | InputType.TYPE_TEXT_VARIATION_PASSWORD); 
       txtSignuppwd.setTransformationMethod(PasswordTransformationMethod.getInstance()); 

Вот снимок моего интерфейса:

enter image description here

Это расположение, когда пользователь нажимает кнопку для входа в аккаунт. Когда пользователь нажимает на нижний левый значок, который отмечен красным, высота клавиатуры увеличивается благодаря emojis в качестве предложения.

Ниже снимок:

enter image description here

Есть ли способ, чтобы скрыть те верхние смайлики с клавиатуры программна?

ответ

1

Существуют сотни, если не тысячи, редакторов методов ввода (a.k.a., soft keyboard) для Android.

Никому не нужно предлагать emoji. Те, кто это делает, могут предложить им, хотя они хотят, когда захотят.

Нет необходимости в редакторе методов ввода для оценки любых флагов, которые вы положили на EditText. Поэтому нет необходимости, чтобы редактор метода ввода предлагал любые средства блокировки ввода emoji. И даже если некоторые из них предлагают эту способность, другие могут не быть, а те, кто это делает, могут делать это с помощью разных флагов.

Решение о том, есть ли опция emoji на клавиатуре, находится между разработчиками клавиатуры и пользователем (который выбирает клавиатуру для использования). Вы не получаете голоса.

Поскольку AFAIK emoji - это всего лишь символы Юникода, и поскольку вы должны поддерживать символы Unicode в другом месте (например, китайские глифы), неясно, какая техническая причина вам понадобится, чтобы избежать эмози. При этом вы можете попытаться отфильтровать их из вводимого текста (например, использовать TextWatcher), если вы против emoji.

+1

это лучший ответ, простой TextWatcher, что работал большой для меня является EmojiExcludeFilter найти на http://stackoverflow.com/questions/22990870/how-to-disable-emoji- from-being-embedded-in-android-edittext – CSmith

+0

Использование TextWatcher для фильтрации всех введенных emoji является лучшим решением. – Hitchhiker

+0

Отличный ответ, но, IMO, есть хотя бы одна техническая причина, даже работающая в Unicode (и я столкнулся с ней несколько раз): загрузка данных пользователя в базу данных MySQL в utf8, поскольку она не принимает emojis, как объяснено [здесь] (https://mathiasbynens.be/notes/mysql-utf8mb4). Иногда у нас нет никакого контроля над базой данных, поэтому блокировка emojis - единственный способ пойти. – thelawnmowerman

-1

Это может быть полезно для вас отключит emojis android: inputType = "textShortMessage". Пожалуйста, дайте мне знать, если это не поможет вам

-1

Try This

Там нет ничего, что будет 100% отключить смайлики.Можно только скрыть стандартные EMOS от клавиатуры независимо, если кто-то с помощью пользовательской клавиатуры, вы не можете скрыть EMOS из пользовательской клавиатуры может быть, это поможет вам

editext.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL); 
4

Попробуйте работу этого для меня

editText.setFilters(new InputFilter[]{new EmojiExcludeFilter()}); 
private class EmojiExcludeFilter 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) { 
        return ""; 
       } 
      } 
      return null; 
     } 
    } 
-1

Это, вероятно, не самое лучшее решение, но код ниже работал для меня просто отлично:

editText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); 

и поскольку тип ввода пароля изменяет шрифт просто установить По умолчанию гарнитура к нему:

editText.setTypeface(Typeface.DEFAULT); 

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

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