2016-12-17 82 views
0

我有一個自定義的操作欄,我想通過點擊它在主要活動上添加導航抽屜圖標抽屜會打開/關閉和其他活動我想要一個後退箭頭,單擊它我回到父活動。 我已經這樣做了抽屜圖標和它的作品,改變ActionBar圖標

toolbar.setNavigationIcon(R.drawable.ic_menu_black_24dp); 
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
      this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
    drawer.setDrawerListener(toggle); 
    toggle.syncState(); 

和後退箭頭我已經嘗試了本

setDisplayHomeAsUpEnabled(true); 
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case android.R.id.home: 
      this.finish(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

,但只有一件事,在工作一段時間,如何既能工作?

回答

0

在其他活動(您想後退箭頭),你應該在AndroidManifest.xml文件中定義parentActivityName定義哪些活動時按下後退箭頭應該進行導航。

<activity 
     android:name=".activities.ArticleDetailActivity" 
     android:parentActivityName=".activities.ArticlesActivity" 
     android:screenOrientation="portrait" 
     android:theme="@style/AppTheme.NoActionBar"> 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.example.activities.ArticlesActivity" /> 
</activity> 

在這種活動 Java代碼,你應該寫在下面回調onCreate方法的代碼。

ActionBar actionBar = getSupportActionBar(); 
if(actionBar != null) { 
     actionBar.setDisplayHomeAsUpEnabled(true); 
} 

而在這活動onOptionsItemSelected回調方法,你還需要下面的代碼要返回到先前的活動。

public boolean onOptionsItemSelected(MenuItem item) { 

     int id = item.getItemId(); 

     switch (id) { 
      case android.R.id.home: 
       onBackPressed(); 
       return true; 
     } 

     return super.onOptionsItemSelected(item); 
} 
+0

箭頭正在顯示,但不會返回到父級活動。 –

+0

@MubtadaANaqvi,你必須在AndroidManifest.xml文件中爲Activity定義parentActivityName,在onOptionsItemSelected回調方法中定義onBackPressed()。 –