實(shí)現(xiàn)描述
在使用android應(yīng)用時(shí),經(jīng)常會點(diǎn)擊回退按鈕,點(diǎn)擊后當(dāng)前窗體會切換到上一個(gè)窗體召嘶。而有時(shí)瀏覽列表信息時(shí),點(diǎn)擊回退希望回到父級界面狀態(tài)哮缺,而非上一個(gè)窗體界面弄跌,這種情況即用到了以下開發(fā)流程。
開發(fā)流程
-
Step-1 設(shè)置各子級Activity的parentActivityName屬性
<activity android:name=".FirstActivity"
android:label="FirstActivity"
android:parentActivityName=".MainActivity"/><activity android:name=".SecondActivity" android:label="SecondActivity" android:parentActivityName=".MainActivity"/>
Step-2 設(shè)置顯示ActionBar的回退圖標(biāo)按鈕
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
/設(shè)置顯示ActionBar的回退圖標(biāo)按鈕/
this.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}Step-3 為回退按鈕添加如下點(diǎn)擊事件
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case android.R.id.home:
Intent upIntent = NavUtils.getParentActivityIntent(this);
if(NavUtils.shouldUpRecreateTask(this, upIntent)){
TaskStackBuilder.create(this)
.addNextIntentWithParentStack(upIntent)
.startActivities();
}else{
upIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
NavUtils.navigateUpTo(this, upIntent);
}
return true;
default:
return super.onOptionsItemSelected(item);
}
}