Ответ 1
Вам не нужно использовать какую-либо логику для удаления подчеркиваний - просто вызовите getText(). toString(), когда вы хотите использовать значение. Он не будет включать специальное форматирование или что-то еще.
Всякий раз, когда слово вводится в поле EditText, я всегда вижу подчеркивание под введенным словом. Но когда я нажимаю пробел после этого слова, я больше не вижу подчеркивания.
Мой запрос заключается в том, чтобы удалить это подчеркивание, когда пользователь вводит сообщение.
Добавлен скриншот, и мы видим, что Смит подчеркивается. Но я не хочу, чтобы это произошло.
Ниже представлен xml, который я использую для окна AlertDialog.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/name_view"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:text="@string/alert_dialog_name"
android:gravity="left"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/username_edit"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:scrollHorizontally="true"
android:autoText="false"
android:inputType="textPersonName"
android:capitalize="none"
android:gravity="fill_horizontal"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
Вам не нужно использовать какую-либо логику для удаления подчеркиваний - просто вызовите getText(). toString(), когда вы хотите использовать значение. Он не будет включать специальное форматирование или что-то еще.
android:inputType="textNoSuggestions"
Существует функция, которая удаляет любое состояние компоновки. Я думаю, если вы будете называть его каждый раз, когда пользователь вводит его, вы не увидите подчеркивания. Я использую его после того, как пользователь заканчивает ввод, чтобы получить кеш файл для всего текста (который мне нужен без подчеркивания). Это
someTextView.clearComposingText();
принятый ответ не получил решения, и какой-то другой пользователь дал ответ, но никто не дал полный anser, поэтому я напишу здесь рабочее решение.
Если вы хотите удалить подчеркивание, просто добавьте ниже код.
XML
android:inputType="textNoSuggestions"
Java
EditText ed;
ed = findViewById(yourId);
ed.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
Если вы хотите установить более одного типа ввода, тогда
ed.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
Может быть выше информации полезно другим.
Используйте это из своего класса, если представление EditText является динамическим (создается из файла класса):
EditText.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
ИЛИ включить android:inputType="textNoSuggestions"
с помощью вашего EditText в XML.
Лучшее решение для этого - добавить на ваш EditText
:
android:inputType="textMultiLine|textVisiblePassword"
Прочтите это, если хотите сохранить смайлики и textNoSuggestions
не работает для вас.
textNoSuggestions
не работает на каждой клавиатуре. inputType="textVisiblePassword"
работает, но удаляет эмодзи с большинства клавиатур.
Я обнаружил, что настройка inputType="textUri"
работает и сохраняет возможность добавлять смайлики.
попробовать:
android:inputType= InputTypes.TextVariationVisiblePassword;
Вы можете настроить EditText на пользовательский прозрачный чертеж или просто использовать андроид: background = "@android: color/transparent".
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@null"
android:imeOptions="actionDone"
android:inputType="textNoSuggestions"
android:maxLines="1"
/>