0

私はAActivity呼び出しBActivityを使用し、BActivity呼び出しCActivityを使用します。
以下のコードのように:
AActivityの場合:

Intent intent = new Intent();
intent.setClass(AActivity.this, BActivity.class);
startActivity(intent);

BActivityの場合:

Intent intent = new Intent();
intent.setClass(BActivity.this, CActivity.class);
startActivity(intent);

CActivityで戻るボタンを押した場合、AActiviyを直接起動したいと思います。
ただし、BActivityは呼び出さないでください。
どうすれば変更できますか?

4

2 に答える 2

1

BActivity では:

Intent intent = new Intent();
intent.setClass(BActivity.this, CActivity.class);
this.finish();  //***** Add this
startActivity(intent);

これにより、バック スタックから B がポップされるため、CActivity から戻るボタンを押すと、スタック内の次の AActivity が表示されます。

- これは上記の回答とは異なります。このアプローチでは、(ほとんどの場合) 以前の状態で AActivity に戻ります。上記の最初の回答では、AActivity の新しいインスタンスを起動して、バック スタックにもう 1 つのアクティビティを追加します。ニーズに適したアプローチを選択する必要があります。

于 2013-01-17T02:47:07.190 に答える
1

CActivitytoの戻るボタンをオーバーライドできます

@Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        switch (keyCode) {
        case KeyEvent.KEYCODE_BACK:
           Intent intent = new Intent();
           intent.setClass(CActivity.this, AActivity.class);
           startActivity(intent);
        }
        return true;
    }
于 2013-01-17T02:44:52.910 に答える