在EditText视图中输入密码时,会显示字符,经过一段时间后显示为DOT,我想删除此延迟。它应该直接显示为DOT。
我如何在Android上执行此操作?
答案 0 :(得分:1)
这是Android中的用户设置,我不相信它可以从代码中控制。它旨在帮助用户输入正确的密码。
- Edit-- 关于问题评论的问题,可以在以下网址找到该设置:
设置>安全>使密码可见
以上内容与Android ICS有关,设置应与之前版本类似。
答案 1 :(得分:1)
隐藏密码强制,
android.provider.Settings.System.putInt(this.getContentResolver(),android.provider.Settings.System.TEXT_SHOW_PASSWORD, 0);
注意:它不会显示任何字符,在 android:密码属性设置为 true 的情况下,您的视图中会立即显示直接DOT强>
答案 2 :(得分:1)
使用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;
}
答案 3 :(得分:-1)
我知道这很旧,但这里有一个有用的提示! (这也行)
如果您将焦点从当前 EditText 移动到下一个它会跳过延迟,因此如果您正在创建一个 PIN 屏幕,那么您只需要立即将焦点移动到下一个“pin”,它就会跳过延迟并立即显示星号。
如果您只有 1 个 EditText,您也许还可以将 rootView 或容器设置为可聚焦并给予焦点。