Android 检测edittext中的击键

Android 检测edittext中的击键,android,android-edittext,Android,Android Edittext,我有一个编辑文本和一个按钮。我希望在edittext中按下键盘上的enter/回车键时调用按钮onclick处理程序 xml布局: <EditText android:id="@+id/input" android:layout_weight="1" android:layout_width="0dp" android:maxLength="1" android:layout_height="wrap_content" andr

我有一个编辑文本和一个按钮。我希望在edittext中按下键盘上的enter/回车键时调用按钮onclick处理程序

xml布局:

   <EditText android:id="@+id/input"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:maxLength="1"        
    android:layout_height="wrap_content"
    android:hint="@string/enter" />

    <Button 
    style="?android:attr/buttonStyleSmall"         
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/button_send" 
    android:onClick="handler"/>        
我读过关于堆栈溢出的其他答案,但没有一个解决方案对我有效,因为我可能做错了什么。有人能用代码告诉我在edittext中按ENTER键时如何调用处理程序吗

我正在运行代码的设备是一个带有蜂巢的Acer Iconia A501平板电脑

这是完整的java文件 试试这个

  @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
    switch (keyCode) {
    case KeyEvent.KEYCODE_ENTER:
       button.performClick();
        return true;
    }
  }
  return super.onKeyDown(keyCode, event);
}
这起作用了

  @Override
  public boolean onKeyUp(int keyCode, KeyEvent event) {

      switch (keyCode) {
      case KeyEvent.KEYCODE_ENTER:
          button.performClick();
          return true;
      default:
          return super.onKeyUp(keyCode, event);
      }


  }

这不管用。。按enter键时没有响应。另外,请注意edittext设置为android:maxLength=“1”。。这可能是未检测到enter键的原因吗?maxLength没有引起问题。。没有它也无法工作。请尝试在xml中使用android:imeOptions=“”。这方面的更多细节与凯图的答案完全相同,但它不起作用。未检测到enter。我不知道这是否相关,但我运行代码的设备是带有蜂巢的Acer Iconia A501平板电脑
  @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
    switch (keyCode) {
    case KeyEvent.KEYCODE_ENTER:
       button.performClick();
        return true;
    }
  }
  return super.onKeyDown(keyCode, event);
}
  @Override
  public boolean onKeyUp(int keyCode, KeyEvent event) {

      switch (keyCode) {
      case KeyEvent.KEYCODE_ENTER:
          button.performClick();
          return true;
      default:
          return super.onKeyUp(keyCode, event);
      }


  }