实现描述
在使用android应用时,经常会点击回退按钮,点击后当前窗体会切换到上一个窗体。而有时浏览列表信息时,点击回退希望回到父级界面状态,而非上一个窗体界面,这种情况即用到了以下开发流程。
开发流程
-
Step-1 设置各子级Activity的parentActivityName属性
<activity android:name=".FirstActivity"
android:label="FirstActivity"
android:parentActivityName=".MainActivity"/><activity android:name=".SecondActivity" android:label="SecondActivity" android:parentActivityName=".MainActivity"/>
Step-2 设置显示ActionBar的回退图标按钮
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
/设置显示ActionBar的回退图标按钮/
this.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}Step-3 为回退按钮添加如下点击事件
@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);
}
}