【问题标题】:Setting EditText to single line makes it lose its focus after pressing enter将 EditText 设置为单行使其在按 enter 后失去焦点
【发布时间】:2013-12-28 00:03:30
【问题描述】:

我在我的代码中使用 EditText,并在单击按钮时将其内容与字符串进行比较。 不幸的是,通过 onKey 使用 enter 键执行此操作会导致问题,因为 enter 创建了一个 越线。 我用过:

setSingleLine(true);

防止这种情况发生。但是现在按 enter 会导致 EditText 失去焦点。 为什么会有这样的行为,我该如何解决?

【问题讨论】:

    标签: java android android-edittext adp


    【解决方案1】:

    尝试在 EditText 的布局 xml 中使用此 android:lines="1"

    这会将 Enter 键视为新行并且焦点不会松动。虽然现有文本可能由于只有一行而无法显示,但由于它向上移动并被隐藏。

    【讨论】:

    • 谢谢,用这个代替 setSingleLine(true) 就行了!
    • 我同意。当然我会标记这个,但系统还不允许我这样做。再次感谢:)
    • 这个答案不会阻止换行。有没有办法在保持焦点的同时防止换行?
    【解决方案2】:

    将 EditText 设置为自身的下一个焦点:

    <EditText
        android:id="@+id/input"
        ...
        android:imeOptions="actionNext"
        android:nextFocusForward="@+id/input"
        android:singleLine="true" />
    

    【讨论】:

    • 没用,伙计。我正在 Nexus 5 - Android-M 6.1.1 上测试我的应用
    猜你喜欢
    • 2015-09-27
    • 1970-01-01
    • 1970-01-01
    • 2011-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多