2011-03-31 98 views
25

每当在EditText框中输入一个单词时,我总是在被键入的单词下看到下划线。但是当我在这个单词后面按一个空格时,我不再看到下划线。如何从Android的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> 

enter image description here

+1

词的出现正在输入的(至少在自动完成)从相同也可以不同。例如,在Android 2.2上的HTC SenseUI上,自动完成考虑下的当前单词以绿色突出显示。你为什么要捣乱用户期望在他们习惯的特定设备/键盘上看到什么? – 2011-03-31 18:25:30

+0

我只是想使用任何用户类型并将其发送到服务器,我不希望写任何逻辑来删除最后加下划线的单词。 – Sana 2011-04-01 03:18:25

+1

这是IME特定的。如果您希望IME尽可能少干扰,您可以使用不同的'inputType',但在这种情况下,您使用的是正确的类型,并且它按照它认为最适合此特定类型的输入的方式进行操作,并且这也是用户期望的。 – EboMike 2011-04-01 08:29:55

回答

7

您不必使用任何逻辑删除下划线 - 只需要调用的getText()的toString()当你想使用的值。它不会包含特殊格式或任何内容。

13

有一个功能可以删除任何组成状态。我认为如果每次用户输入后都打电话,就不会看到下划线。我在用户输入完成后使用它,以获得整个textView的绘图缓存(我不需要下划线)。这是

someTextView.clearComposingText(); 
54

android:inputType="textNoSuggestions"

+2

这为我解决了完美的问题。 – 2016-03-15 09:42:32

+1

完美作品 – 2016-03-30 06:16:04

+0

谢谢你,你是最好的 – 2017-07-14 16:49:47

0

尝试:

android:inputType= InputTypes.TextVariationVisiblePassword; 
2

使用该从你的类,如果EditText上的观点是动态的(从类文件创建):

EditText.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); 

OR包括android:inputType="textNoSuggestions"与您的EditText在XML中。

9

接受的答案没有给出解决方案,以及其他一些用户给出的答案,但没有人给予充分的雁,所以这就是为什么我写在这里工作的解决方案。

如果你想删除下划线,那么只需添加下面的代码。

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

可能是上面的信息是帮助他人。

0

您可以设置的EditText有一个自定义的透明可拉伸或只使用Android:背景=“@安卓:彩色/透明”。

-1
<EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@null" 
     android:imeOptions="actionDone" 
     android:inputType="textNoSuggestions" 
     android:maxLines="1" 
     /> 
+3

你需要解释你的代码,而不仅仅是抛出它。 – 2017-11-09 11:55:16

+0

什么inputType你给它没关系,但也需要给textNoSuggestions使用或符号(|)然后下划线将去。 – 2017-12-02 10:07:22

-1

这样做的最好的办法是在你的EditText补充:

android:inputType="textMultiLine|textVisiblePassword" 
+0

嗨,欢迎来到Stack Overflow并感谢您的回答。伟大的答案还包括解释原始问题是什么故障以及为什么这个答案解决了这个问题。 – Spangen 2018-02-23 11:56:38

相关问题