父活动中的onKeyDown或onBackPressed

时间:2011-05-16 14:58:35

标签: android tabactivity

我有TabActivity根据选择的标签显示其他Activities作为内容。我想要做的是从'父'活动尝试捕获后退按键,但是onKeyDown()onBackPressed()都没有在父母中调用...它由'孩子'处理活动。有没有办法让它传递给'父'活动?

3 个答案:

答案 0 :(得分:7)

为什么不在子活动中使用,

@Override
public void onBackPressed () {
    this.getParent().onBackPressed();
}

答案 1 :(得分:2)

您可以在TabActivity和他的孩子之间建立一个沟通程序。

我在TabActivity中创建了一个静态Handler,它在TabActivity的onCreate中初始化。

然后我创建了一个静态getHandler()方法(在TabActivity中)。

现在,为您的孩子提供问题的片段是:

@Override
public void onBackPressed () {
    MyTabActivity.getHandler().sendEmptyMessage(MyTabActivity.BACK_PRESSED);
}

答案 2 :(得分:2)

我也遇到过同样的问题。我用这种方式解决了这个问题:

@Override
public boolean dispatchKeyEvent(KeyEvent event)
{
    if (event.getKeyCode() == KeyEvent.KEYCODE_BACK)
    {
        //things u want to do when back key pressed
    }    
    return super.dispatchKeyEvent(event);
}