2011-01-06 2 views
3

В принципе, я пытаюсь воссоздать функциональность MediaController в собственном музыкальном приложении (что я вижу в версии 2.2), где обратная кнопка сразу возвращается из экрана, а не скрывает MediaController. Кажется, нет никакого хорошего способа установить keylistener или переопределить метод для перехвата этих ключевых событий.Перехват ключей для MediaController?

Любые идеи?

ответ

1

Вы можете попробовать что-то вроде

mMediaController = new MediaController(this) { 

     @Override 
     public boolean dispatchKeyEvent(KeyEvent event) { 
      // TODO Auto-generated method stub 

      if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) { 
       finish(); 

      } 
      return super.dispatchKeyEvent(event); 
     } 
} 

или dispatchKeyEvent как

@Override 
public boolean dispatchKeyEvent(KeyEvent event) { 
    ContentActivity.this.dispatchKeyEvent(event); 
} 
+0

dispatchKeyEvent в настоящее время вызывается дважды для одного backpress ни малейшего представления, почему? – Jasper

+0

@ Jasper, потому что он сначала реагирует на ACTION_DOWN, а затем на ACTION_UP. Если вы хотите обработать его только один раз, используйте 'event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP' –