2017-02-17 78 views
1

我工作的一个Android应用程序,最近,我发现默认的后退按钮onBackPressed()产生行为,而getSupportActionBar().setDisplayHomeAsUpEnabled(true)产生行为。而这两者有显着的差异。模拟了当返回按钮被按下

我在想,如果当我按下硬件后退按钮,我可以模拟的行为,所以它导航,而不是。 谢谢。

+0

您是否尝试过重写'onBackPressed'和调用'NavUtils.navigateUpFromSameTask(本);'从内呢? – Michael

+0

'NavUtils.navigateUpFromSameTask(this);'是我所缺少的。谢谢 – vickmwas

回答

2

你可以这样做。

@Override 
public void onBackPressed() { 
    NavUtils.navigateUpFromSameTask(this); 
} 
+0

谢谢。有效。 'NavUtils.navigateUpFromSameTask(this);'就是我所缺少的 – vickmwas

0

您可以通过此

覆盖的onBackPressed()方法做的到你的活动像这样

public void onBackPressed(){ 
    // do something here and don't write super.onBackPressed() 
} 

覆盖中,onKeyDown()方法

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    switch(keyCode){ 
    case KeyEvent.KEYCODE_BACK: 
     // do something here 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

希望它可以帮助你

0

你可以做到这一点

超越控制onOptionsItems选择

创建onBackPressed android.R.id.home 调用方法的开关情况下();

这里是代码

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case android.R.id.home: 
       onBackPressed(); 

      default: 
       return super.onOptionsItemSelected(item); 
     } 
    } 
+0

你的回答似乎与我想要的相反。不过谢谢你的努力 – vickmwas