2016-03-31 30 views
-1

Bir süre içinde birbirini izleyen iki anahtarı (birincisi, diğerini) tanıtmayı ve her bir tuş kodunun değerini saklamayı düşünüyorum. Süre, 3 saniye veya daha uzun olabilir ve tuşlar yalnızca sayılardır. Ben sadece 9'aAndroid'de birden fazla KeyEvent kullanın

@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; 
} 

1 kadar numara var bu kodda

Ben 1 İlk koymak isteyen ve daha sonra 3. ve son olarak önceden 13.

Teşekkür alacağım!

cevap

0

Sınıf değişkenlerini kullanarak kontrol edebilirsiniz. Aşağıdaki sözde kod. Bu biraz hacky, ama işe yaramalı.

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 
     ... 
    } 
}