从我的应用程序中,我希望在 iPhone 上实现的更像是用四位数字输入密码,这意味着带有掩码点。我已经完成了正确的条目。但是,在使用 TextWatcher 的具体实现addTextChangedListener
时,当我输入了 4 个错误的数字并且焦点返回到第一个数字并且每个数字也被清除时。在这种情况下,用于数字输入的原始软键盘切换回 qwert 键盘,输入的任何字母或数字都变得可见,而不会被点屏蔽。
myEditText1.addTextChangedListener(new MyTextWatcher(mPasswordEditText){
@Override
public void afterTextChanged(Editable arg0) {
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
s = mPasswordEditText.getText();
int cacheH = UnlockScreen.this.mPasswordEditText.getHeight();
if(s.length() == 1){
UnlockScreen.this.mPasswordEditText1.requestFocus();
mPasswordEditText.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
mPasswordEditText.setTransformationMethod(PasswordTransformationMethod.getInstance());
mPasswordEditText.setMinHeight(cacheH);
}
}
});
但它并没有像预期的那样运作良好。XML 布局是:
<EditText
android:id="@+id/unlock_screen_password_edittext_1"
style="@style/passcodeStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".20"
android:layout_marginRight="10dip"
android:digits="@string/digits_only"
android:gravity="center"
android:inputType="number"
android:password="true"
android:maxLength="1"/>
任何想法,伙计们?