9

我的应用程序中有一个登录页面,其中列出了以下元素:

  • 用户名(编辑文本)
  • 密码(编辑文本)
  • 登录(按钮)

按下Login时,它将进入主屏幕。Done目的是当用户在软键盘上完成键入密码时执行相同的操作Samsung Galaxy S3;和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 与 imeOptions 一起保留,actionDoneflagNoExtractUi没有成功。

4

2 回答 2

3

我在Asha 的回复中找到了一个解决方案,它似乎适用于三星 Galaxy S3、S3 Mini、S2、谷歌 Nexus Tab,并希望适用于三星的所有设备。到目前为止,对于 HTC,它适用于 HTC Desire X,我已经检查过了。对于 HTC One X,这是行不通的。有一个actionid它的值是5捕获enter软键盘的键动作。

于 2013-06-10T12:12:06.560 回答
2

HTC 出于某种原因不支持 imeOptions,一般来说并非所有键盘都支持它。在这里查看更多信息。我的建议是为下一步/完成/等制作自己的 UI 按钮。功能。

于 2013-05-31T07:53:36.950 回答