我对使用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
方法也没有被调用!
我尝试了很多搜索并使用其他人的解决方案,但这似乎是制造商的问题!
答案 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());