3

間違ったパスワードが入力された場合、編集テキストボックスが振動して色が一瞬変わるようにしようとしています

final Drawable oldBackground = findViewById(R.id.email).getBackground();
TimerTask timerTask = new TimerTask() {
    @Override
    public void run() {
        MainActivty.this.findViewById(R.id.password).setBackground(oldBackground);
        MainActivty.this.findViewById(R.id.email).setBackground(oldBackground);
    }
};


Toast.makeText(MainActivty.this , valArray.get(0).toString(), Toast.LENGTH_SHORT).show();
findViewById(R.id.password).setBackgroundColor(Color.RED);
findViewById(R.id.email).setBackgroundColor(Color.RED);
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
v.vibrate(500);Timer timer = new Timer();
timer.schedule(timerTask, 1000);
4

2 に答える 2

7

タイマー タスクは別のスレッドで実行されます。Ui は ui スレッドで更新する必要があります。

を使用runOnUiThreadまたは使用しHandlerます。

          runOnUiThread(new Runnable(){

              @Override
              public void run(){
               // update ui here  
              }
           });

ハンドラ

Handler m_handler;
Runnable m_handlerTask ;  
m_handler = new Handler();   
m_handlerTask = new Runnable()
{
  @Override 
  public void run() { 

    // do something  
    m_handler.postDelayed(m_handlerTask, 1000);    

  }
  };
 m_handlerTask.run();

カウントダウンタイマーを使用することもできます

分と秒のカウントダウンタイマー

于 2013-08-31T13:58:25.337 に答える