我如何在MaintabActivity中监听BACK keydown(包含2个子tabActivities)

时间:2011-07-07 04:01:39

标签: android android-tabhost keydown

公共类MyTab扩展了TabActivity;

public class SubTab扩展了TabActivity;

  

MyTab中定义了2个标签:

     
      
  1. setContent(new Intent(this,SubTab.class))
  2.   
  3. setContent(R.id.view1)
  4.   

然后在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中按Back键,Logcat中仅显示“In SubTab”。

删除SubTab中的方法,然后按Back键,Logcat中不显示任何内容。

在另一个标签页(不是活动)中按Back键,Logcat中只显示“In MyTab”。

现在,我想在MyTab中编写一个监听Back Keydown的方法,因为在另一个项目中,mainTab有超过3个subtabActivity。

2 个答案:

答案 0 :(得分:2)

尝试以下方法:

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
        Log.i("MyTab Back", "In MyTab ");
    }
    return super.dispatchKeyEvent(event);
}

答案 1 :(得分:1)

试试这个:

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