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

时间:2016-10-09 09:16:47

标签: android android-edittext android-inputtype imeoptions

我对使用EditText inputType并不陌生,但现在我在使用android:inputType="textPassword"旁边设置android:imeOptions="actionDone"时遇到问题

使用的设备是: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>

我的代码EidtText

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

这不适用于我的LG G4设备,onEditorAction方法也没有被调用!

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

3 个答案:

答案 0 :(得分:2)

最后,我想通了。

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

android:singleLine="true"

我知道它已被弃用,但android:maxLines="1"虽然取代了singleLine,却无法正常工作。

我也删除了这个:

android:imeOptions="actionDone"

谢谢你们帮助我。

答案 1 :(得分:0)

尝试此操作以检测输入密钥

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

答案 2 :(得分:-2)

尝试使用此方法

edittext.setTransformationMethod(PasswordTransformationMethod.getInstance());