2016-03-31 5 views
-1

ある期間内に2つの連続したキー(最初と最後)を導入し、それぞれのキーコードの値を保存します。 期間は3秒以上で、キーは数字のみです。複数のKeyEventをAndroidで使用する

は、このコードでは私は私が最初に1を入れ、その後、3、最終的には事前に13

感謝を取得しているよ1から9

@Override 
    public boolean onKeyDown (int keyCode, KeyEvent event){ 
    event.getScanCode(); 
    switch (keyCode) { 
     case KeyEvent.KEYCODE_BACK: 
      break; 
     case KeyEvent.KEYCODE_DPAD_UP: 
      break; 
     case KeyEvent.KEYCODE_DPAD_DOWN:    
      break; 
     case KeyEvent.KEYCODE_DPAD_RIGHT: 
      break; 
     case KeyEvent.KEYCODE_DPAD_LEFT: 
      break; 
     case KeyEvent.KEYCODE_ENTER: 
      super.onKeyDown(KeyEvent.KEYCODE_ENTER, event); 
      break; 
     default: 
      //This is the part 
     if (keyCode>7 && keyCode<17){ 
      indice_layouts[(keyCode - 8)].requestFocus(); 
     }else{ 
      Toast.makeText(this,"empty number", Toast.LENGTH_LONG).show(); 
     } 
      break; 
    } 


     return true; 
} 

に番号を持っています!

答えて

0

クラス変数を使用してチェックできます。以下の擬似コード。ちょっとハッキリですが、うまくいくはずです。

long timeButton1 = 0; 
int keyCode1 = 0; 
public boolean onKey(...) { 
    ... 
    if(keyCode == KEYCODE_1) { 
     timeButton1 = new Date().getTime(); 
     keycode1 = KEYCODE_1; 
    } 
    if(keyCode == KEYCODE_3 && new Date().getTime() - timeButton1 > 3000 && keycode1 == KEYCODE_1) { 
     //Reset 
     timeButton1 = 0; 
     keycode1 = 0; 
     //Do awesome stuff 
     ... 
    } 
} 
関連する問題