在android中禁用编辑文本字段30秒

时间:2015-11-12 07:24:21

标签: android android-studio

我正在为Android应用程序创建登录屏幕。如果用户输入错误的密码凭证3次,则编辑文本字段将被禁用30秒。 30秒后,用户可以再次输入密码。我怎样才能实现它?谢谢

4 个答案:

答案 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();