不是setOnKeyListener和setOnEditorActionListener意外地工作

时间:2015-06-25 15:02:14

标签: android

我想在用户按下EditText中的输入按钮时做一些事情(这是多行editText意味着用户可以写多行) 我只想检测按下的回车键 使用的代码如下所示

<EditText
            android:id="@+id/body"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@android:color/transparent"
            android:hint="@string/hint"
            android:padding="5dp"
            android:scrollbars="vertical"
            android:textColor="@android:color/black"
            android:textCursorDrawable="@null"
            android:textSize="22sp" />  

和听众是

mBodyText.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View view, int i, KeyEvent keyEvent) {
            if ((keyEvent.getAction()== KeyEvent.ACTION_UP)) {
                if(i == KeyEvent.KEYCODE_ENTER){
                    Toast.makeText(getApplicationContext(), "neter presed", Toast.LENGTH_LONG).show();
                    return true;
                }
            }
            return false;
        }
    });  

但是当我按下时它没有显示任何东西但是当我长按输入键时显示

和setOnEditorActionListener是

mBodyText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
            if ((keyEvent.getAction()== KeyEvent.ACTION_UP)) {
                if(i == KeyEvent.KEYCODE_ENTER){
                    Toast.makeText(getApplicationContext(), "neter presed", Toast.LENGTH_LONG).show();
                    return true;
                }
            }
            return false;
        }
    });

当我按下回车键并且当我长按回车键时应用程序崩溃时,它没有显示任何内容 请帮助我,我很长时间尝试它

1 个答案:

答案 0 :(得分:1)

失望的人没有回答我的问题,但我在自己的资源上解决了这个问题 setOnKeyListener没有工作,因为一些Android设备不支持这个,但大多数都支持
和setOnEditorActionListener导致崩溃,因为我试图从数据库中获取数据并在活动开始时在我的EditText视图中显示 非常感谢@ isma3l