在我的应用程序中,我实现了自己的数字键盘,用于输入(基于数字的)密码。密码'或者更确切地说是' - ' - 表示,显示在num-pad上方4个框中实现的4个EditTexts上。当你输入一个数字时,其中一个框将填入一个圆点 - 为此我使用了TransformationMethod PasswordTransformationMethod - 但我希望你打入的数字在被隐藏之前可以看到一段时间(比如〜200毫秒)。
在Android中是否有任何实现这方面的功能,或者您如何以最佳方式实现此功能?我确定你知道我的意思,它经常用于基于移动设备的密码输入。
编辑:提示后的代码:
codeField1 = (EditText) findViewById(R.id.passcode_1);
codeField2 = (EditText) findViewById(R.id.passcode_2);
codeField3 = (EditText) findViewById(R.id.passcode_3);
codeField4 = (EditText) findViewById(R.id.passcode_4);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
codeField1.setTransformationMethod(PasswordTransformationMethod.getInstance());
codeField2.setTransformationMethod(PasswordTransformationMethod.getInstance());
codeField3.setTransformationMethod(PasswordTransformationMethod.getInstance());
codeField4.setTransformationMethod(PasswordTransformationMethod.getInstance());
}
}, 2000);
仍然给我问题,只影响我输入的第一个..(所有这些都在onCreate())。
答案 0 :(得分:2)
不要在edittext中设置android:password="true"
属性。请使用 textwatcher 并在textwatcher 的 addTextChangedListener()中替换密码*等待200ms后。
要等待使用以下代码:
private Handler mHandler = new Handler();
mHandler.postDelayed(new Runnable() {
public void run() {
doStuff();
}
}, 2000);
答案 1 :(得分:2)
试试这段代码..
这将在2秒后隐藏文本,您可以根据您的需要进行更改..
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
edittext.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
editText.setTransformationMethod(PasswordTransformationMethod.getInstance());
}
}, 2000); // set time based on your requirement