如何从 Android 中的 EditText 字段中删除下划线?

发布于 2024-10-28 12:37:40 字数 1325 浏览 2 评论 0原文

每当在 EditText 框中键入单词时,我总是会在键入的单词下方看到一条下划线。但是当我在该单词后按空格时,我不再看到下划线。

我的要求是在用户键入消息时删除该下划线。

添加了屏幕截图,我们看到史密斯带有下划线。但我不希望这种事发生。

下面是我用于 AlertDialog 框的 xml。

<?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>

在此处输入图像描述

Whenever a word is typed in the EditText box, I always see an underline under the word being typed. But when I press a space after that word I no longer see the underline.

My reqirement is to remove that underline when the user is typing the message.

Added is the screenshot and we see that Smith is underlined. But I don't want this to happen.

Below is the xml that I use for the AlertDialog box.

<?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>

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

橘和柠 2024-11-04 12:37:40

android:inputType="textNoSuggestions"

android:inputType="textNoSuggestions"

沦落红尘 2024-11-04 12:37:40

有一个函数可以删除任何组合状态。我认为如果您在每次用户键入后调用它,您将看不到下划线。我在用户完成输入后使用它来获取整个 textView 的绘图缓存(我需要没有下划线)。它是

someTextView.clearComposingText();

There is a function that removes any composing state. I think if you call it after every time a user types, you will not see the underline. I use it after the user finishes typing, to get the drawing cache of the entire textView (which I need without underline). It's

someTextView.clearComposingText();
七秒鱼° 2024-11-04 12:37:40

您不必使用任何逻辑来删除下划线——只需在想要使用该值时调用 getText().toString() 即可。它不会包含特殊格式或任何内容。

You don't have to use any logic to remove the underlines -- just call getText().toString() when you want to use the value. It won't include special formatting or anything.

你好,陌生人 2024-11-04 12:37:40

接受的答案没有给出解决方案,其他一些用户给出了答案,但没有人给出完整的答案,所以这就是我在这里写下工作解决方案的原因。

如果你想删除下划线,只需添加以下代码即可。

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

那么以上信息可能对其他人有帮助。

accepted answer is not given solution, and some other user given answer but no one given full anser, so that's why i write here working solution.

If you want to remove underline then just add below code.

XML

android:inputType="textNoSuggestions"

Java

EditText ed;
ed = findViewById(yourId);
ed.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

If you want to set more than one input type then,

ed.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

May be above information is helpful to others.

誰ツ都不明白 2024-11-04 12:37:40

最好的解决方案是在 EditText 上添加:

 android:inputType="textMultiLine|textVisiblePassword"

The best solution for this is to add on your EditText:

 android:inputType="textMultiLine|textVisiblePassword"
总攻大人 2024-11-04 12:37:40

如果 EditText 视图是动态的(从类文件创建),请从您的类中使用它:

EditText.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

或者在 XML 中将 android:inputType="textNoSuggestions" 包含在您的 EditText 中。

Use this from your class, if EditText view is dynamic (created from class file):

EditText.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

OR include android:inputType="textNoSuggestions" with your EditText in XML.

一人独醉 2024-11-04 12:37:40

如果您想保留表情符号并且 textNoSuggestions 不适合您,请阅读本文。

textNoSuggestions 并非在所有键盘上都适用。
inputType="textVisiblePassword" 可以工作,但它会从大多数键盘中删除表情符号。

我发现设置 inputType="textUri" 有效并保留添加表情符号的功能。

Read this if you want to keep emojis and textNoSuggestions doesn't work for you.

textNoSuggestions does not work in every keyboard.
inputType="textVisiblePassword" works but it removes emoji's from most keyboards.

I found that setting inputType="textUri" works and keeps the ability to add emojis.

傲性难收 2024-11-04 12:37:40

尝试:

android:inputType= InputTypes.TextVariationVisiblePassword;

try:

android:inputType= InputTypes.TextVariationVisiblePassword;
梦情居士 2024-11-04 12:37:40
<EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@null"
        android:imeOptions="actionDone"
        android:inputType="textNoSuggestions"
        android:maxLines="1"
        />
<EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@null"
        android:imeOptions="actionDone"
        android:inputType="textNoSuggestions"
        android:maxLines="1"
        />
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文