1

所以我有活動A,B和C.活動A & B都去活動C.當我在活動C和我按下mySupportActionBar回到主頁按鈕,我想返回到活動狀態(從我離開的狀態)我來自。我將如何實現這一目標?如何返回以前的活動?

這是我的onOptionsItemSelected()。所以目前,它回到我在清單中指定的指定父活動,以避免我的應用程序崩潰。因爲父活動需要來自意圖的字符串。

@Override 
    public boolean onOptionsItemSelected(MenuItem item) 
    { 
     int id = item.getItemId(); 
     if(id == android.R.id.home) 
     { 
      NavUtils.navigateUpFromSameTask(this); 
     } 
     return super.onOptionsItemSelected(item); 
    } 

我也很想完成onBackPressed()。

enter image description here

+1

不要聲明父活動,只調用'finish()'而不是調用'NavUtils.navigateUpFromSameTask(this)'。 –

+0

所以在清單,我需要擺脫父母的活動? – TheQ

+0

實際上,它也可以在沒有擺脫父活動聲明的情況下工作。嘗試一下,看看會發生什麼。 –

回答

1

使用android.R.id.home

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

這是它,謝謝芽! – TheQ

+0

不客氣。 –

1

後退箭頭按鈕是「家」的按鈕,當你在內心活動是如此,你可以完成的內心活動或者只是調用的返回按鈕

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

您也可以使用工具欄上的setNavigationOnClickListener觸發後退按鈕。

@Override 
    protected void onCreate(@Nullable Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_filter_category); 

     setSupportActionBar(toolbar); 

     if (getSupportActionBar() != null) { 
      getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
      getSupportActionBar().setDisplayShowTitleEnabled(false); 

      //back button action 
      toolbar.setNavigationOnClickListener(view -> finish()); 
     } 
    } 
相關問題