3

A、B、Cの3つのアクティビティがあります。アクティビティAはBまたはCを開始できます。AがCを開始すると、戻るボタンを押すだけでAに戻ることができます。しかし、私はBに「戻り」、次にAに「戻る」ことを望んでいます(戻るボタンを2回押す)。

TaskBackStackを次のように使用しようとしました。

final TaskStackBuilder builder = TaskStackBuilder.create(this)
    .addParentStack(this)
    .addNextIntent(new Intent(this, B.class))
    .addNextIntent(new Intent(this, C.class));
builder.startActivities();

しかし、それは機能していません...誰かが私を助けることができますか?

私の英語でごめんなさいそして前もって感謝します

4

4 に答える 4

3

アクティビティCのonBackPressedメソッドをオーバーライドします。

                @Override
                public void onBackPressed() {
                    super.onBackPressed();
                    //finish();
                        Intent intent = new Intent(ActivityC.this,ActivityB.class);
                        startActivity(intent);
                     }

仕上げを書くと、アクティビティAから来たので、アクティビティAに進むことができます。そのため、インテントを使用します。アクティビティBでもそうです。

@Override
public void onBackPressed() {
     super.onBackPressed();
     //finish();
     Intent intent = new Intent(ActivityB.this,ActivityA.class);
     startActivity(intent);
}

状況を教えてください。

于 2012-11-14T12:50:37.490 に答える
2

onKeyDownメソッドをオーバーライドする

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {

            //Do stuff, like launching a new activity

            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
于 2012-11-14T12:45:35.600 に答える
1

アクティビティライフサイクルの基本的なスタートに進みます。あなたはこれを行うことについてより良い知識を持つでしょう。Androidでこのアクティビティを別のアクティビティから呼び出すに移動します。あなたはグーグルで多くの例を見つけるでしょう。それを試してみてください..例の1つ

于 2012-11-14T12:52:50.827 に答える
1

あなたの質問に答える前に、あなたの活動間を移動するためのあなたのアプローチについていくつかコメントがあります。一般に、このアプローチはお勧めできません。これを行うと、Androidナビゲーションパターンに従わず、ほとんどのAndroidアプリケーションがナビゲーションパターンを使用するため、アプリケーションがユーザーフレンドリーでなくなる可能性があります。

Androidのナビゲーションパターンは次のように述べています

一時的なナビゲーション、または履歴画面間のナビゲーションは、Androidシステムに深く根ざしています。すべてのAndroidユーザーは、他の状態に関係なく、[戻る]ボタンで前の画面に移動することを期待しています。履歴画面のセットは、常にユーザーのランチャーアプリケーション(電話の「ホーム」画面)に基づいています。つまり、[戻る]を十分な回数押すと、ランチャーに戻るはずです。その後、[戻る]ボタンは何もしません。

ただし、Androidパターンを使用してアプリケーション内を移動する別の可能性がありますが、それは問題の解決策ではないと思います。あなたはアップナビゲーションを見ることができます

最後に、OnBackPressed()をオーバーライドして新しいアクティビティを開始するソリューションについての関連コメントがあります。あなたはそれを本当に避けるべきです、なぜならそれを使うことはあなたの時間的ナビゲーションを狂わせることができるからです。OnBackPressed内でアクティビティを作成すると、常にAndroid Stackに新しいアクティビティが配置されるため、ここには2つの問題があります。

  1. スタックは、ユーザーの行動に応じて急速に拡大する可能性があります
  2. アプリケーションから抜け出すのが難しい場合があります(スタックを空にするのが非常に難しい場合があります)
于 2012-11-14T14:17:16.567 に答える