【发布时间】:2011-07-27 03:23:36
【问题描述】:
每当在 EditText 框中键入一个单词时,我总是会在正在键入的单词下方看到一个下划线。但是当我在那个词后面按一个空格时,我不再看到下划线。
我的要求是在用户键入消息时删除该下划线。
添加了屏幕截图,我们看到 Smith 带有下划线。但我不希望这种情况发生。
下面是我用于警报对话框的 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>
【问题讨论】:
-
当前输入的字词的外观(至少在启用自动完成的情况下)因设备而异。例如,在 Android 2.2 上的 HTC SenseUI 上,正在考虑自动完成的当前单词以绿色突出显示。你为什么要搞乱用户期望在他们习惯的特定设备/键盘上看到的内容?
-
我只想使用用户键入的任何内容并将其发送到服务器,我不希望编写任何逻辑来删除最后一个带下划线的单词。
-
这是特定于 IME 的。如果您希望 IME 尽可能少地干扰,您可以使用不同的
inputType,但在这种情况下,您使用的是正确的类型,它会执行它认为最适合这种特定类型输入的操作,并且这也是用户所期望的。 -
您不必使用任何逻辑来删除下划线——当您想使用该值时,只需调用 getText().toString() 即可。它不会包含特殊格式或任何内容。
-
好的,我把它作为答案添加了,所以你可以接受它,虽然我并不认为这是一个很大的问题或解决方案——它只是“忽略它的样子并对待它就像任何普通的文本输入一样。”