0

ユーザーが EditBox を離れるまでパスワードを非難読化し、その後難読化するにはどうすればよいですか? ユーザーがパスワードを入力しているときにパスワードを表示できるようにしたいのですが、入力が完了して他のフィールドに移動するとすぐに難読化します。

4

2 に答える 2

2

PasswordTransformationManagerクラスとを使用してこれを行うことができますOnFocusChangedListener。これを試して:

myEditText.setOnFocusChangeListener(new View.OnFocusChangeListener()
{
    @Override
    public void onFocusChange(View view, boolean focused)
    {
        if(focused)
           ((EditText)view).setTransformationMethod(null);
        else
           ((EditText)view).setTransformationMethod(PasswordTransformationMethod.getInstance());
    }
});

これは基本的に xml 属性の設定と同じですandroid:password="true"が、EditText にフォーカスがない場合のみです。

于 2012-07-06T19:16:38.487 に答える
2

Android にはこれを行うための機能が組み込まれているとは思いませんが、TextView をサブクラス化し、onFocusChanged メソッドの文字を変更することで、おそらく非常に簡単に行うことができます。パスワード文字を変数に保存し、ウィンドウがフォーカスを失ったときにそれらをドットに置き換えます。フォーカスが得られたら、ドットを取り除き、文字を元に戻します。

于 2012-07-06T19:01:01.617 に答える