- ActionBar的向上导航
今天在使用ActionBar应用图标作为向上导航的响应事件时,只是使用了setDisplayHomeAsUpEnabled(true),运行后傻乎乎得点击图标,为什么不会返回上一层.然后调试了半个下午。
原来setDisplayHomeAsUpEnabled(true)只会给你添加一个向上的图标,并不会有事件的响应。→_→真是糊涂。
Email应用的标准图标(左边)和“向上返回”图标(右边).系统自动加上了“up”标记。
用户触摸了图标,系统会调用activity的 onOptionsItemSelected() 方法,并带入android.R.id.home ID,请记得在 Intent 上使用 FLAG_ACTIVITY_CLEAR_TOP 标志,这样就不会创建已存在的父activity的新实例。
1 @Override 2 public boolean onOptionsItemSelected(MenuItem item) { 3 switch (item.getItemId()) { 4 case android.R.id.home: 5 // action bar中的应用程序图标被点击了,返回home 6 Intent intent = new Intent(this, HomeActivity.class); 7 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 8 startActivity(intent); 9 return true; 10 default: 11 return super.onOptionsItemSelected(item); 12 } 13 }