0

私のアプリからは、パスワード入力用に 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"/>

皆さん、何か考えはありますか?

4

1 に答える 1

0

setText(s.toString()。replace(s.toString()、'。'));を使用しています。mPasswordEditText.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);およびmPasswordEditText.setTransformationMethod(PasswordTransformationMethod.getInstance());の代わりに また、各エディットテキストにtextChangeステータスのフラグを設定します。それが最善の解決策かどうかはわかりませんが、私のアプリの場合、これは正常に機能し、これまでのところ、より良い方法はわかりませんでした。

于 2013-02-14T17:31:35.930 に答える