我有一个TabActivity,它根据选择的选项卡将其他活动显示为内容。我想要做的是从“父”活动尝试捕获后退按键,但是onKeyDown()和onBackPressed()都不会在父项中被调用......它正在由“子”活动处理。有没有办法让它传递给“父”活动?
问问题
2844 次
3 回答
7
为什么不直接在子活动中使用:
@Override
public void onBackPressed () {
this.getParent().onBackPressed();
}
于 2011-05-16T15:11:06.460 回答
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);
}
于 2011-12-08T08:14:37.150 回答
2
您可以在 TabActivity 和他的孩子之间建立一个通信过程。
我在 TabActivity 中创建了一个静态处理程序,该处理程序在 TabActivity 的 onCreate 中初始化。
然后我创建了一个静态 getHandler() 方法(在 TabActivity 中)。
现在,为您的孩子解决问题的片段将是:
@Override
public void onBackPressed () {
MyTabActivity.getHandler().sendEmptyMessage(MyTabActivity.BACK_PRESSED);
}
于 2011-05-16T15:05:22.453 回答