将EditText设置为单行后,按下回车键会使其失去焦点

9

我在代码中使用了EditText并在点击按钮时将其内容与字符串进行比较。但是,使用onKey处理回车键会出现问题,因为回车会创建一个换行符。

我尝试过:

setSingleLine(true);

为了避免这种情况发生,现在按下回车键会导致EditText失去焦点。为什么会出现这种情况,我该如何解决?
2个回答

2
尝试在EditText的layout xml中使用android:lines="1"。这会将Enter键视为新行,焦点不会丢失。虽然由于只有一行,现有文本可能不可见,因为它向上移动并隐藏了。

谢谢,使用这个代替setSingleLine(true)就可以了! - user3086884
1
我同意。当然我会标记这个,但是系统还没有允许我这样做。再次感谢 :) - user3086884
这个答案并不能防止换行。有没有办法在保持焦点的同时防止换行呢? - Lionet Chen

1
将EditText设置为自身的下一个焦点:
<EditText
    android:id="@+id/input"
    ...
    android:imeOptions="actionNext"
    android:nextFocusForward="@+id/input"
    android:singleLine="true" />

兄弟,不行啊。我正在 Nexus 5 - Android-M 6.1.1 上测试我的应用程序。 - ARK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接