3

選択したタブに基づいてコンテンツとして他のアクティビティを表示するTabActivityがあります。私がやりたいのは、「親」アクティビティから戻るキーの押下をキャプチャしようとすることですが、onKeyDown()onBackPressed( )も親で呼び出されることはありません...「子」アクティビティによって処理されています。それを「親」アクティビティに渡す方法はありますか?

4

3 に答える 3

7

子の中から、ただ使ってみませんかアクティビティ:

@Override
public void onBackPressed () {
    this.getParent().onBackPressed();
}
于 2011-05-16T15:11:06.460 に答える
2

TabActivityと彼の子の間の通信手順を設定できます。

TabActivityのonCreateで初期化された静的ハンドラーをTabActivityに作成しました。

次に、静的getHandler()メソッドを(TabActivityに)作成しました。

今、あなたの子供のためのあなたの質問を達成するためのスニペットは次のようになります:

@Override
public void onBackPressed () {
    MyTabActivity.getHandler().sendEmptyMessage(MyTabActivity.BACK_PRESSED);
}
于 2011-05-16T15:05:22.453 に答える
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 に答える