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()); 
     } 
    } 
相关问题