Android:从软键盘中删除 Enter 键

Posted

技术标签:

【中文标题】Android:从软键盘中删除 Enter 键【英文标题】:Android: Remove Enter Key from softkeyboard 【发布时间】:2011-10-22 21:47:23 【问题描述】:

在我的登录表单中,当用户单击 EditText 并按下回车键时,这会插入一个新行,因此会增加 EditText 的大小。下一刻,它返回到之前的位置并在密码字段(即下一个字段)中打印一个点。

我想从软键盘中删除这个回车键。有可能吗?

【问题讨论】:

我认为最简单的方法是 android:inputType="textPersonName" 它将停止输入 textView.. android:inputType="textNoSuggestions" 从软键盘中删除返回键。 【参考方案1】:

将此标签添加到xml中的textView

    android:singleLine = "true"

【讨论】:

android:maxLines = "1" & android:lines = "1" 并没有真正起作用.. 但是 android:singleLine = "true" 起作用了.. Developer.Android 并没有说 android:singleLine 已弃用!!【参考方案2】:

恐怕你不能这样做。但有一件事是你可以像这样处理软键盘按键事件,

edittext.setOnKeyListener(new OnKeyListener() 

        public boolean onKey(View v, int keyCode, KeyEvent event) 


                if (event.getAction() == KeyEvent.ACTION_DOWN
                        && event.getKeyCode() ==       KeyEvent.KEYCODE_ENTER) 
                    Log.i("event", "captured");

                    return false;
                 
                else if(event.getAction() == KeyEvent.ACTION_DOWN
                        && event.getKeyCode() == KeyEvent.KEYCODE_BACK)
                    Log.i("Back event Trigered","Back event");

                

            

            
            return false;
        
    );

除此之外,您必须注意,提供android:singleLine=true 属性将使您的edittext 在按下软键盘ENTER 时变大

【讨论】:

"android:singleLine=true" 救了我 :D 试试那个。并感谢@Andro 的回答。【参考方案3】:

使用: android:singleLine = "true" 要么 edittext.setSingleLine();

你的 ENTER 键不见了

【讨论】:

【参考方案4】:

在标签EditText内你只需要这样做:

android:singleLine="true"

删除键盘上的回车键

更新

因为android:singleLine="true" 已弃用我使用android:maxLines="1" 来避免输入EditText。方法名称如何表示只允许 N 行。

【讨论】:

现在已弃用【参考方案5】:

新的更新:

android:maxLines="1"

【讨论】:

【参考方案6】:

如果你想要在你的 .java 中更通用的东西:

boolean state = true; yourTextInputEditText.setSingleLine(state);

【讨论】:

以上是关于Android:从软键盘中删除 Enter 键的主要内容,如果未能解决你的问题,请参考以下文章

Android - 处理虚拟和物理键盘事件

Android EditText 捕获KEYCODE_ENTER后按下Del键无法正常退格?

Android 软键盘控制方法以及开发中遇到的一些问题。

如何在android的底部工作表对话框中隐藏软键

Android webview中的js如何监听键盘事件

在 Android 的文字编辑控件 (TEdit) 中, 如何按下 Enter 就隐藏虚拟键盘