0

Androidアプリケーションにタブバーがあり、各タブにはさらに5〜7のアクティビティの流れがあり、これらのアクティビティはすべてタブバーを表示する必要があるため、このように activitygroup と getLocalActivityManager を使用して各アクティビティを意図しています

 Intent intent = new Intent(thisActivity, activity2.class);

                     mView = getLocalActivityManager().startActivity("id", intent
                    .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
                    )
                    .getDecorView();

                    setContentView(mView);

そして、このアクティビティ1の戻るボタンを次のように設定しました

        mView.dispatchKeyEvent(event);

そのため、戻るボタンのコントロールはその意図したアクティビティに移動します2

次に、意図された activity2 の戻るボタンで、@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK)) { //戻るキーが押された Log.d として、最後のアクティビティへの意図にオーバーライドします。 (this.getClass().getName(), "戻るボタンが押されました");

        Intent intent = new Intent(getApplicationContext(),activity1.class);
        mView = NearByActivity.mLocalActivityManager.startActivity("activity1", intent
                .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
                )
                .getDecorView();

                setContentView(mView);

        return true;
    }
    return super.onKeyDown(keyCode, event);

}

2 つのアクティビティでは正常に動作しますが、タブの 5 ~ 6 のアクティビティでは機能しません。3 番目のアクティビティの [戻る] ボタンをクリックすると、[戻る] ボタンがオーバーライドされず、[アクティビティ 2] の [戻る] ボタンが使用され、2 ではなくアクティビティ 1 に移動します

1 つのタブのコンテンツで 6 7 のインテントを実行してこれを解決する方法

4

1 に答える 1

-1

@Override
public void onBackPressed() { try{ Listentab.group.back(); }catch(IndexOutOfBoundsException e) { 終了(); }

アクティビティグループを拡張するアクティビティでこれを使用します

于 2012-06-18T11:09:13.333 に答える