检测edittext中的击键

时间:2013-08-17 10:18:04

标签: android android-edittext

我有一个edittext和一个按钮。我希望在edittext中按键盘上输入/回车时调用按钮onclick处理程序。

xml layout:

   <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"/>        

处理程序如下所示:

public void handler(View view){
//handles buttonclick here    
    }

我已经阅读了有关Stack溢出的其他答案,但没有一个解决方案对我有用,因为我可能做错了。有人告诉我如何在edittext中按下ENTER键时如何调用处理程序?

我正在运行代码的设备是带有Honeycomb的Acer Iconia A501Tablet。

这是完整的java文件 http://pastebin.com/tbTTu7T7

3 个答案:

答案 0 :(得分:1)

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        switch (keyCode) {
        case KeyEvent.KEYCODE_ENTER:
            /// call click event here by passing view
            //or u can write code which u want to be called onclick
            return true;
        }
    }
    return super.onKeyDown(keyCode, event);
}

答案 1 :(得分:1)

试试这个..

  @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);
}

答案 2 :(得分:0)

这很有用

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

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


  }