2015-06-29 18 views
0

我有向後箭頭實施和工作,但不是隻完成activityB並返回到前一個視圖(片段)用戶在activityA中。它會關閉activityB並重新加載activityA,這意味着您必須通過幾個菜單返回到您所在的位置。Android:我似乎無法讓我的自定義工具欄的後退箭頭像設備的後退箭頭一樣行動

物理後退箭頭完全按照我想要的方式完成,因爲它只是關閉了activtyB,並將用戶放回原來位於activtyA內的位置,然後才移至activtyB。

這是我當前的工具欄後退箭頭代碼,但也許我只是沒有完全掌握物理後退箭頭的工作方式。我感謝任何和所有的建議!

toolbar = (Toolbar) findViewById(R.id.tool_bar); 
setSupportActionBar(toolbar); 
getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

回答

0

你需要重寫你的活動的onOptionsItemSelected方法:

@Override 
public boolean onOptionsItemSelected(MenuItem menuItem) { 
    if (menuItem.getItemId() == android.R.id.home) { 
     onBackPressed(); 
    } else { 
     super.onOptionsItemSelected(menuItem); 
    } 
    return true; 
} 
+0

這工作完全一樣我也想,這是一個超級簡單的修補。謝謝! – 8BitYoda

+0

很高興工作! – jmateo

1

對於你必須在Android清單文件中添加父活動的每一次活動。

<activity 
     android:name="com.example.myfirstapp.ActivityC" 
     android:label="@string/title_activity_display_message" 
     android:parentActivityName="com.example.myfirstapp.MainActivity" > 
     <!-- The meta-data element is needed for versions lower than 4.1 --> 
     <meta-data 
     android:name="android.support.PARENT_ACTIVITY" 
     android:value="com.example.myfirstapp.MainActivity" /> 
    </activity> 

如果您將MainActivity指定爲ActivityC的父級,那麼它將轉到MainActivity。如果您指定了ActivityB,它將移動到ActivityB上,單擊ActionBar中的後退按鈕。

更多請見在here

+0

這很有道理,謝謝,今天我學到了一些新東西。如果我只使用活動,這可能會解決我的問題。我只是意識到我忘了提及ActivityA使用片段(因爲我以前從未使用它們,這個項目讓我學習儘可能多的新東西),所以我需要後退箭頭返回到activityA並顯示其最後一個片段。對不起,我的初步詢問並不徹底,但感謝教我新的東西!直到該鏈接之前,我還沒有完全理解父母的活動。 – 8BitYoda

相關問題