android edittext inputType :textpassword not working with intputType:actionDone on some devices

标签 android android-edittext android-inputtype imeoptions

我对 EditTextinputType 并不陌生,但现在我在设置 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 方法也未被调用!

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

最佳答案

我终于明白了。

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

android:singleLine="true"

我知道它已被弃用,但 android:maxLines="1" 尽管它是 singleLine 的替代品,但无法正常工作。

我也删除了这个:

android:imeOptions="actionDone"

谢谢你们试图帮助我。

关于android edittext inputType :textpassword not working with intputType:actionDone on some devices,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39941935/

相关文章:

android - 尝试在 Android 中解析 Json,获取 arraylist 异常

android - 如何在android中制作多行edittext

android - 更改 EditText 的线条颜色 - Android

android - 如何以编程方式将 EditText 的 InputType 设置为整数或小数?

android - InputType 的 API 常量值

android - 如何禁止在 Android EditText 中输入 GIF?

Android谷歌地图获取多个位置之间的最短路径

android - 从相机拍摄时图片/图像质量低

android - `adb shell input` 返回 `Killed` 响应,没有注册任何输入

android - 同时输入两个编辑文本字段