私のアプリからは、パスワード入力用に 4 桁の数字、つまりマスクされたドットを使用して 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"/>
皆さん、何か考えはありますか?