7

Androidでアプリを扱っています。私の要件は、ユーザーがパスワードを入力している間、パスワードを非表示にすることです。パスワードを非表示にする方法は知っていますが、ユーザーが入力したパスワードは、判読できない形式に変換する前にしばらく表示されます。

4

7 に答える 7

12

入力中にパスワードの文字を非表示にする TransformationMethod の実装:

public class LoginActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // example of usage
    ((TextView) findViewById(R.id.password)).setTransformationMethod(new HiddenPassTransformationMethod());
}

private class HiddenPassTransformationMethod implements TransformationMethod {

    private char DOT = '\u2022';

    @Override
    public CharSequence getTransformation(final CharSequence charSequence, final View view) {
        return new PassCharSequence(charSequence);
    }

    @Override
    public void onFocusChanged(final View view, final CharSequence charSequence, final boolean b, final int i,
                               final Rect rect) {
        //nothing to do here
    }

    private class PassCharSequence implements CharSequence {

        private final CharSequence charSequence;

        public PassCharSequence(final CharSequence charSequence) {
            this.charSequence = charSequence;
        }

        @Override
        public char charAt(final int index) {
            return DOT;
        }

        @Override
        public int length() {
            return charSequence.length();
        }

        @Override
        public CharSequence subSequence(final int start, final int end) {
            return new PassCharSequence(charSequence.subSequence(start, end));
        }
    }
}
}
于 2013-04-24T21:29:03.530 に答える
3

デフォルトの編集テキスト プロパティをpasswordとして設定しないでください。代わりにaddTextChangedListener()、ユーザーが文字を入力するとすぐに呼び出される which を使用できます。「mPass」などの活動レベル文字列を維持します。,メソッドでTextWatcher()onTextChanged文字を mPass に追加し、入力文字を * に置き換えます。

TextWatcher()ただし、文字を * に置き換えた後でも、このアプリケーションは に制御を渡すため、注意が必要です。適切に処理されないと、再帰的に呼び出され、アプリケーションがクラッシュします。

退屈な方法ですが、うまくいきます...

于 2012-11-07T11:15:57.283 に答える
0

AndroidにはTextViewの属性があります:

android:password フィールドの文字を、それ自体ではなくパスワードのドットとして表示するかどうか。

http://developer.android.com/reference/android/widget/TextView.html#attr_android:パスワード

于 2012-11-07T10:47:40.693 に答える
-1

一般、セキュリティに移動し、「パスワードを表示する」が見つかるまでスクロールします(パスワードを入力すると、パスワードの文字が短時間表示されます)。これにより、文字が短時間表示されなくなり、誰かがパスワードを読み取る可能性が減少します。入力すると。

于 2015-06-29T18:47:40.427 に答える
-1

セットandroid:password="true"。それはあなたが期待することをします。

例:

   <EditText 
            android:id="@+id/editText1"
            android:inputType="number"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:password="true" />
于 2012-11-07T10:47:05.653 に答える