2016-03-31 3 views
-1

Я ищу ввести два последовательных ключа (первый, затем другой) в течение периода времени и сохранить значение каждого кодового ключа. Период времени будет 3 секунды или более, а ключи - только номера.Использовать более одного KeyEvent в Android

В этом коде я только получил цифры от 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; 
} 

Я ищу поставить первые 1, а затем 3 и, наконец, получить 13.

Спасибо заранее!

ответ

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 
     ... 
    } 
} 
Смежные вопросы