Как я могу прослушать нажатие клавиши BACK в MaintabActivity (содержит 2 вложенных вкладки) - PullRequest
0 голосов
/ 07 июля 2011

открытый класс MyTab расширяет TabActivity;

открытый класс SubTab расширяет TabActivity;

В MyTab определено 2 вкладки:

  1. setContent (новый Intent (this, SubTab.class))
  2. setContent (R.id.view1)

Затем напишите метод в MyTab:

public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        Log.i("MyTab Back", "In MyTab ");
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

и метод в SubTab , просто изменить на Log.i («SubTab Back», «In SubTab»).

Проблема: Нажмите кнопку Назад в SubTab, в Logcat отображается только «In SubTab».

Удалите метод в SubTab, затем нажмите Back Key. В Logcat ничего не отображается.

Нажмите кнопку «Назад» на другой вкладке (не «Активность»), в Logcat отображается только «В MyTab».

СЕЙЧАС, я хочу просто написать метод для прослушивания Back Keydown в MyTab, потому что в другом проекте mainTab имеет более 3 subtabActivity。

Ответы [ 2 ]

2 голосов
/ 08 июля 2012

попробуйте следующее:

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
        Log.i("MyTab Back", "In MyTab ");
    }
    return super.dispatchKeyEvent(event);
}
1 голос
/ 07 июля 2011

попробуйте это:

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        Log.i("MyTab Back", "In MyTab ");
        return true;
    }
    return false;
}
...