コード例 #1
0
  public boolean executeKeyEvent(KeyEvent event) {
    boolean handled = false;
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
      switch (event.getKeyCode()) {
        case KeyEvent.KEYCODE_DPAD_LEFT:
          if (movePrevious()) {
            setChildSelections();
          }
          handled = true;
          break;

        case KeyEvent.KEYCODE_DPAD_RIGHT:
          if (moveNext()) {
            setChildSelections();
          }
          handled = true;
          break;

        case KeyEvent.KEYCODE_DPAD_CENTER:
        case KeyEvent.KEYCODE_ENTER:
          mReceivedInvokeKeyDown = true;
          if (this.changeListener != null) {
            View child = getChildAt(mSelectedIndex);
            Object obj = itemList.getItem(mSelectedIndex);
            changeListener.onItemSelected(obj, mSelectedIndex, child);
          }
          handled = true;
          break;
      }
    }
    return handled;
  }