我正在为Android应用程序创建登录屏幕。如果用户输入错误的密码凭证3次,则编辑文本字段将被禁用30秒。 30秒后,用户可以再次输入密码。我怎样才能实现它?谢谢
答案 0 :(得分:3)
你可以尝试
//Disable your EditText
Handler handlerTimer = new Handler();
handlerTimer.postDelayed(new Runnable(){
public void run() {
// Enable it
}}, 30000);
但是我认为阻止编辑文本30秒不是一个好方法,为什么要这样做?
我希望能帮到你。
答案 1 :(得分:0)
试试这个......
感谢@ridsatrio,我已经更新了代码。
Animal
答案 2 :(得分:0)
首先,您必须拥有一个计数器,每次提交错误密码时该计数器都会递增。一个简单的int
字段可以解决这个问题:
int passwordAttempt = 0;
接下来,当用户输入错误的密码时,您必须递增此“计数器”。如果计数器达到3,请禁用EditText
(并在30秒后重新启用它):
if(passwordAttempt == 3) {
// User has entered wrong password 3 times.
// Disable your EditText.
yourEditText.setEnabled(false);
// Re-enable your EditText after 30000 milliseconds (30 seconds).
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
yourEditText.setEnabled(true);
}
}, 30 * 1000);
// Reset the counter.
passwordAttempt = 0;
}
答案 3 :(得分:0)
int start1=18000;
final Timer timer = new Timer();
new Thread(new Runnable() {
@Override
public void run() {
timer.schedule(new TimerTask() {
@Override
public void run() {
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
if (start1 <= 0) {
timer.cancel();
timer.purge();
editTextActivation.setEnabled(true);
}
start1 = start1 - 1000;
}
});
}
}, 0, 1000);
}
}).start();