【问题标题】:How to apply "actionNext" to physic Enter如何将“actionNext”应用于物理输入
【发布时间】:2012-10-21 12:30:46
【问题描述】:

我正在制作一个登录活动,它有两个 EditText,第一个带有“actionNext”,第二个带有“actionDone”。

使用虚拟键盘一切正常,因为虚拟 Enter 按钮已更改为“下一步/完成”按钮。

但问题出现在物理(在 AVD 中)输入按钮上。因为当我触摸它时,它会在 EditText 中创建一个断线。我也尝试使用“android:lines="1",但这只会产生“图形”效果,因为 Enter 按钮也会创建一个新的断线。

当我在平板电脑上运行应用程序时,也会出现此问题。在我的平板电脑中,我只有一个虚拟键盘,但它有两个按钮(Next 和 Enter)。

如何使用“输入”“actionNext/actionDone”功能,或者如何禁用此按钮以避免创建新行。

谢谢。

PD:对不起我的英语,我正在学习。

【问题讨论】:

    标签: android enter


    【解决方案1】:

    尝试在您的活动中使用dispatchKeyEvent(KeyEvent event)

    @Override
      public boolean dispatchKeyEvent(KeyEvent event) {
        Log.i("key pressed", String.valueOf(event.getKeyCode()));
        return super.dispatchKeyEvent(event);
    }
    

    通过 keyCode 可以检测物理键盘按键 Enter 是否被按下。

    【讨论】:

    • 我看到这个“物理”Enter的keyCode是“66”。但是,如果我这样做:editText.setOnKeyListener(new OnKeyListener().. ... onKey(...) { if (keyCode == 66) {donothing} } 它没用,因为它使 {donothing} 并且还创建了一个新的断线. 你能更好地解释一下它是如何运行“dispatchKeyEvent(KeyEvent event) ???谢谢。
    • 文档说:“如果此事件被消耗,则返回 true”。所以你应该这样做:if (keyCode == KeyEvent.KEYCODE_ENTER) { return true; }更多细节在这里developer.android.com/reference/android/app/…
    猜你喜欢
    • 1970-01-01
    • 2020-02-13
    • 2012-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多