特定のキーボードボタンを非表示にすることはできますか?私はEditText
を持っていて、一部のデバイスではキーボードの顔がスマイリーですが、他のデバイスではキーボードがありません。すべてのデバイスで非表示にしたい。
以下は、私の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"
これは可能ですか?
質問が反対票を投じられた理由がよくわかりません。有効な質問です。
私は何かを発見しました ここ 。
textLongMessage
からinputType
オプションを削除する必要があります。
ほとんどのキーボードには「:-)」ボタンがありますが、絵文字はありません。
(完全のため)
このソリューションは、ソフトキーボードにスマイリーなしでテキストビューを表示する必要があるユーザー向けです。メールアドレスタイプを使用する@Adrianのソリューションは機能しますが、キーボードに不要な「@」および「.com」ボタンが表示されます。私はInputTypeのいくつかの組み合わせを試しましたが、IMHOの最良のソリューションはこれです:
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});
「 AndroidのEditTextで顔文字を検出する方法 」を参照してください。
@Adrianの解決策を試しましたが、「@」と「.com」のキーがあります。ユーザー名を入力できるフィールドが必要です。 textVisiblePassword
とtextNoSuggestions
を組み合わせて解決策を得ました:
Android:inputType="textVisiblePassword|textNoSuggestions