6

次のシナリオがあります。

Android マニフェストには、次の 3 つのアクティビティがあります。 ActivityA ActivityB - ActivityA ActivityC の親

私がやりたいことは、intent.StartActivity() を使用して ActivityC から ActivityA を開始することです。アクティビティが正常に開始されました。アクションバーの戻るボタン (左上隅) を使用して ActivityC に戻りたいのですが、ActivityA には親として ActivityB があるため (Android マニフェストで宣言されているように)、アクションバーの戻るボタンは以前の ActivityC ではなく ActivityB に移動します。キーボードの戻るボタンを使用すると、ActivityC にリダイレクトされます。

両方の「戻る」ケースで同じ結果を得るにはどうすればよいですか。私が求めている結果は、親アクティビティではなく、ActivityA を開始したアクティビティにリダイレクトされることです。出来ますか?

4

3 に答える 3

11

マニフェストで ActivityB を ActivityA の親として定義しないでください。代わりに、ActivityA で onOptionsItemSelected を次のように処理します。

public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            finish();
        }
    return super.onOptionsItemSelected(item);
    }
于 2013-10-21T08:50:03.917 に答える
3

startActivity() を呼び出すときは、次のようにします。

Intent intent = new Intent(callingActivity.this, destinationActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
于 2013-10-21T08:49:40.030 に答える