android edittext inputType:textpassword在某些设备上不使用intputType:actionDone

android edittext inputType:textpassword在某些设备上不使用intputType:actionDone,android,android-edittext,android-inputtype,imeoptions,Android,Android Edittext,Android Inputtype,Imeoptions,我对使用EditText的inputType并不陌生,但现在我在使用android:imeOptions=“actionDone”之外设置android:inputType=“textPassword”时遇到了问题 使用的设备是:LG G4 Android v6.0 这是我的密码: <android.support.design.widget.TextInputLayout android:id="@+id/input_layout_password"

我对使用
EditText
inputType
并不陌生,但现在我在使用
android:imeOptions=“actionDone”
之外设置
android:inputType=“textPassword”
时遇到了问题

使用的设备是:LG G4 Android v6.0

这是我的密码:

<android.support.design.widget.TextInputLayout
                android:id="@+id/input_layout_password"
                style="@style/TextInputLayoutLoginTheme"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="@dimen/default_padding_2"
                app:passwordToggleDrawable="@drawable/ic_password_visibility_18dp_selector"
                app:passwordToggleTint="@color/white">

                <com.cashu.app.ui.widgets.CustomEditText
                    android:id="@+id/et_activity_login_password"
                    style="@style/EditTextPasswordTheme"
                    android:layout_width="@dimen/edittext_width"
                    android:layout_height="wrap_content"
                    android:ems="12"
                    android:gravity="center_vertical"
                    android:hint="@string/activity_consumer_login_password_hint"
                    android:imeOptions="actionDone"
                    android:inputType="textPassword"
                    android:maxLines="1"
                    android:textColor="@color/white"
                    android:textSize="@dimen/font_size_small" />

</android.support.design.widget.TextInputLayout>
这在我的LG G4设备上不起作用,
onEditorAction
方法也未调用

我尝试了这么多的搜索和使用其他人的解决方案,但这似乎是一个制造商的问题

尝试使用此方法

edittext.setTransformationMethod(PasswordTransformationMethod.getInstance());

尝试此操作以检测回车键

mEtPassword.setOnKeyListener(new View.OnKeyListener() {
                @Override
                public boolean onKey(View v, int keyCode, KeyEvent event) {
                    if (event.getAction() != KeyEvent.ACTION_DOWN)
                        // return false;
                        if (keyCode == KeyEvent.KEYCODE_ENTER) {
                            //your necessary codes...

                        }
                    return false;
                }
            });

我终于明白了

我已将此xml属性添加到我的
EditText

mEtPassword.setOnEditorActionListener(new EditText.OnEditorActionListener() {
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if ((actionId & EditorInfo.IME_MASK_ACTION) > 0 || actionId == EditorInfo.IME_NULL) {
                login();
                return true;
            }
            return false;
        }
    });

mEtPassword.addTextChangedListener(new LoginTextWatcher(mEtPassword));
android:singleLine="true"
我知道它已经被弃用了,但是android:maxLines=“1”无法工作,尽管它取代了
singleLine

我还删除了以下内容:

android:imeOptions="actionDone"

谢谢你们试图帮助我。

不起作用,为什么要使用
setTransformationMethod
PasswordTransformationMethod
,尽管它使用相同的xml属性?还没有人回答这个问题?伙计们,你们没有解决方案吗?你们的代码在其他设备或模拟器上工作吗?如果没有,请提供更多可能需要的代码related@IulianPopescu,是的,它可以在其他设备上工作,但在某些设备上,它不能:(而且,
onEditorAction
从未被调用,对吗?或者你想说,
login
方法未被调用?@IulianPopescu,
onEditorAction
方法从未被调用我明天将尝试你的答案,谢谢你现在回答我如果你删除了actionDone,那么你将使用哪个事件捕捉editorqctionlistener请检查我的问题。默认的IME选项为“无”,并且它已经在我的代码中处理过,但是删除它并添加
singleLine
可以使它正常工作