OnEditorActionListener 不工作

OnEditorActionListener not working(OnEditorActionListener 不工作)

本文介绍了OnEditorActionListener 不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我只是想在用户在 editText 上按 enter 时捕捉事件.

I simply want to catch the event when the user press enter on an editText.

我没有收到 Toast 消息,不是按下 Enter",也不是按下了某个键!"要么.

I did not get the Toast message, not the "Enter pressed" and not the "Some key pressed!" either.

我做错了什么?

myEditText.setOnEditorActionListener(new OnEditorActionListener() {

    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {

   Toast.makeText(getApplicationContext(), "Some key pressed!", Toast.LENGTH_LONG).show();

        if (event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
             Toast.makeText(getApplicationContext(), "Enter pressed", Toast.LENGTH_LONG).show();
                return true;
                }
                return false;
            }
        });

它在 Android 2.3.3 上运行,在 4.1.2 上运行不正常有什么想法可以让我在任何安卓设备上使用它吗?

Well it is working on Android 2.3.3 and not working on 4.1.2 Any ideas how can i make this work on any android device?

推荐答案

请尝试将EditText设置为单行模式.

Please try to set the EditText in single line mode.

editText.setSingleLine();

或在您的 xml 布局文件中:

or in your xml layout file:

android:singleLine="true"

更新

android:singleLine="true" 已弃用.从现在开始,使用 android:maxLines="1"android:inputType="text" 来实现这个行为

android:singleLine="true" is deprecated. From now on, use android:maxLines="1" with android:inputType="text" for achieving this behaviour

editText.setMaxLines(1);
editText.setInputType(InputType.TYPE_CLASS_TEXT);

用于以编程方式设置.

这篇关于OnEditorActionListener 不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:OnEditorActionListener 不工作

基础教程推荐