以编程方式在Android软键盘上隐藏/禁用图释

是否可以隐藏特定的键盘button? 我有一个EditText和一些设备的键盘有笑脸,而在其他设备上,它是缺less的。 我想隐藏在所有设备上。

下面是我的EditText的xml:

android:id="@+id/text_editor" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignWithParentIfMissing="true" android:layout_centerVertical="true" android:layout_toLeftOf="@+id/send_side" android:hint="Enter your text" android:imeOptions="actionSend|flagNoEnterAction" android:inputType="textLongMessage|textAutoCorrect|textCapSentences|textMultiLine" android:maxLength="1000" android:maxLines="3" android:nextFocusRight="@+id/send_button" android:padding="12dp" android:textSize="13sp" 

我不得不说我是新的Android,如果这是不可能的,我想知道为什么。

谢谢你的帮助。

Solutions Collecting From Web of "以编程方式在Android软键盘上隐藏/禁用图释"

我不明白为什么这个问题是低估的。 这是一个有效的问题。

我在这里find了一些东西。

您需要从inputType删除textLongMessage选项。

大多数键盘上仍然会有“:-)”button,但不会显示表情符号。

(为了完整起见)

这个解决scheme适用于那些需要在软键盘上没有笑脸的文本视图的人。 @阿德里安的解决scheme,使用电子邮件地址types,但它会在键盘上显示不必要的“@”和“.com”button。 我尝试了InputType的几个组合,最好的解决scheme恕我直言,是这样的:

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

原始键盘: 在这里输入图像说明

结果键盘: 在这里输入图像说明

这在Android 4.4.2上工作

 android:inputType="textEmailAddress|textMultiLine" 

从PetrDaña类似的问题…这使得自动完成和禁用所有的笑脸。

 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}); 

请参阅完整的回答post