EditTextビュー内でパスワードを入力している間、文字が表示され、しばらくするとDOTとして表示されます。この遅延を取り除きたいです。DOT として直接表示する必要があります。
Androidでこれを行うにはどうすればよいですか?
EditTextビュー内でパスワードを入力している間、文字が表示され、しばらくするとDOTとして表示されます。この遅延を取り除きたいです。DOT として直接表示する必要があります。
Androidでこれを行うにはどうすればよいですか?
パスワードを強制的に非表示にするには、
android.provider.Settings.System.putInt(this.getContentResolver(),android.provider.Settings.System.TEXT_SHOW_PASSWORD, 0);
注:文字は表示されません。Android :password属性がtrueに設定されているビュー内に遅延なくDOTが直接表示されます
これは Android 内のユーザー設定です。コードから制御できるとは思いません。ユーザーが正しいパスワードを入力できるように設計されています。
--編集--質問者のコメントに加えて、設定は次の場所にあります。
設定 > セキュリティ > パスワードを表示する
上記は Android ICS に関するもので、設定は以前のバージョンと同様である必要があります。
AOSP PasswordTransformationMethod.javaのコードを使用し、ニーズに合わせて変更します。それから新しいクラスMyPasswordTransformationMethodを作成し、その中のVisibleクラスを変更します。また、一部のプライベートプロパティにアクセスするため、残りのコードも変更する必要がありますが、ほとんどが定数であるため、非常に簡単です。
private static class Visible
extends Handler
implements UpdateLayout, Runnable
{
public Visible(Spannable sp, MyPasswordTransformationMethod ptm) {
mText = sp;
mTransformer = ptm;
//postAtTime(this, SystemClock.uptimeMillis() + 1500);
//replaced with following line
postAtFrontOfQueue(this);
}
public void run() {
mText.removeSpan(this);
}
private Spannable mText;
private MyPasswordTransformationMethod mTransformer;
}