9

我在我的应用程序有一个登录页面里有元素列举:Android的 - 捕获“完成”和“Enter”软键盘上的按键事件

  • 用户名(EditText上)
  • 密码( EditText上)
  • 登录(按钮)

在按下Login,它会降落到主屏幕。当用户在Samsung Galaxy S3软键盘上的密码输入完成时点击Done时,意图是执行相同的动作;和Enter软键键HTC One X

所以,这里是密码字段的EditText上是如何:

<EditText 
    android:id="@+id/password_txt" 
    android:layout_width="200dip" 
    android:layout_height="wrap_content" 
    android:imeOptions="flagNoExtractUi" 
    android:inputType="textPassword" 
    android:paddingLeft="10dp" 
    android:paddingRight="10dp" 
    android:paddingTop="8dp" 
    android:singleLine="true" /> 

活动中,无论我试图在这里:

EditText mPassword = (EditText) findViewById(R.id.password_txt); 
mPassword.setOnEditorActionListener(new TextView.OnEditorActionListener() { 

       @Override 
       public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
        if(event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER || actionId == EditorInfo.IME_ACTION_DONE){ 
         Log.e("MyApp", " ------> IN EDITOR ACTION DONE"); 
        } 
        return false; 
       } 
      }); 

我就与保持imeOptions的密码尝试字段为actionDone以及flagNoExtractUi,但它没有解决。

回答

3

我在reply by Asha找到了这个解决方案,这似乎适用于三星Galaxy S3,S3 Mini,S2,谷歌Nexus Tab和希望三星的所有设备。对于宏达电,它到目前为止,我已经检查了HTC Desire X。对于HTC One X,这不起作用。有这个actionid,其值为5,其中捕获软键盘的关键操作enter

2

宏达电由于某种原因不支持imeOptions,一般不是所有的键盘都支持它。请参阅here。我的建议是为下一个/完成/等制作自己的UI按钮。功能。