web-dev-qa-db-ja.com

Android戻るボタンを使用するための複数の親アクティビティを設定する方法

さまざまなアクティビティからアクティビティを数回呼び出すアプリケーションがあります。したがって、このアクティビティのアクションバーに「戻るボタン」を実装しようとしています。このimを使用して行うには:

 switch (item.getItemId()) {
    case Android.R.id.home:
        NavUtils.navigateUpFromSameTask(this);
        return true;
    default:        
         return super.onOptionsItemSelected(item);
    }

そして:

<meta-data
            Android:name="Android.support.PARENT_ACTIVITY"
            Android:value="view.TweetsIndividuoActivity" />

ここでの問題は、親アクティビティを自分のAndroidマニフェスト、原因、このアクティビティの親が誰であるかわからない)に設定できないことです。

解決策は何ですか?

ありがとう

23

思ったより簡単です。

_switch (item.getItemId()) {
    case Android.R.id.home:
        finish();
        return true;
    default:        
         return super.onOptionsItemSelected(item);
}
_

メソッドfinish()はアクティビティを破棄し、アクティビティを開始したものを表示します。私があなたを正しく理解したなら、それはあなたが望むものです。

現在のソリューションは、毎回同じ親に戻りたい場合を対象としています。 Gmailアプリがそれを行います。通知からメールを開いてアクションバーの戻るボタンを押すと、ホーム画面に戻ることはありませんが、Gmailの受信トレイが表示されます。

38
Damian Petla
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == Android.R.id.home) {
        onBackPressed();
        return  true;
    }
    return super.onOptionsItemSelected(item);

}

常に、新しいアクティビティを開始したアクティビティに戻ります。

以下のコードを使用する必要はありません。

<meta-data
        Android:name="Android.support.PARENT_ACTIVITY"
        Android:value="view.TweetsIndividuoActivity" />
9
Pranav Anand

私もAndroidの初心者ですが、「startActivity(intent)」ではなく「startActivityForResult(intent、1)」を使用して2番目のアクティビティを呼び出すことでこの問題を解決しました。それは兄弟の活動ではなく親子関係です...?

OnOptionsItemSelected()またはfinish()を使用する必要はありませんでした。

0
Tim Cooper