原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/Android/2019/0821/610.html
		开始,常州游戏开发培训给Actionbar增加回笼图标:
	
		代码:
	
		复制代码
	
		 @Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);
	
		  setContentView(R.layout.settings);
	
		  isSendMsg = (Switch) findViewById(R.id.isSendMessage);
	
		  isCall = (Switch) findViewById(R.id.isCall);
	
		  data = (initDataApp)getApplication();
	
		  isSendMsg.setChecked(data.isSendMsg());
	
		  isCall.setChecked(data.isCall());
	
		  ActionBar actionBar = getActionBar();
	
		  actionBar.setDisplayHomeAsUpEnabled(true);  //actionBar.setListNavigationCallbacks(adapter, callback); 
	
		 }
	
		复制代码
	
		配置可用
	
		重写onOptionsItemSelected方法:
	
		复制代码
	
		@Override public boolean onOptionsItemSelected(MenuItem item) {  switch (item.getItemId()) {  case android.R.id.home:   //NavUtils.navigateUpFromSameTask(this);//onSaveInstanceState   
	
		    // This is called when the Home (Up) button is pressed            // in the Action Bar.   
	
		            Intent parentActivityIntent = new Intent(this, MainActivity.class);
	
		            parentActivityIntent.addFlags(
	
		                    Intent.FLAG_ACTIVITY_CLEAR_TOP |
	
		                    Intent.FLAG_ACTIVITY_NEW_TASK);
	
		            startActivity(parentActivityIntent);
	
		            finish();   
	
		  // onBackPressed();
	
		   return true;
	
		  }  return super.onOptionsItemSelected(item);
	
		 }
	
		复制代码
	
		这个方法能够完成在挪用向上回笼时的处分。
	
		接收:android.R.id.home
	
		处分这个android.R.id.home有几种方式,先对其举行对比:
	
		复制手机App外包代码
	
		@Override public boolean onOptionsItemSelected(MenuItem item) {  switch (item.getItemId()) {  case android.R.id.home:
	
		   NavUtils.navigateUpFromSameTask(this);//onSaveInstanceState
	
		   return true;
	
		  }  return super.onOptionsItemSelected(item);
	
		 }
	
		复制代码
	
		尝试回退的时分,到上一个Activity时出现丧失数据现象。(尝试方式,在A中加一个EditText,而后输入数据,点击跳入Bactivity ,此时应用向上一级导航会出现丧失数据)
	
		复制代码
	
		@Override public boolean onOptionsItemSelected(MenuItem item) {  switch (item.getItemId()) {  case android.R.id.home:    
	
		            Intent parentActivityIntent = new Intent(this, MainActivity.class);
	
		            parentActivityIntent.addFlags(
	
		                    Intent.FLAG_ACTIVITY_CLEAR_TOP |
	
		                    Intent.FLAG_ACTIVITY_NEW_TASK);
	
		            startActivity(parentActivityIntent);
	
		            finish();   return true;
	
		  }  return super.onOptionsItemSelected(item);
	
		 }
	
		复制代码
	
		应用intent方式一样,丧失数据。
	
		后来我App开发培训看了看源码,发现点击手机的回退键时,触发onBackPressed();方法,这个方法是回笼时间轴上的上一个Activity,能够留存数据。
	
		复制代码
	
		 @Override public boolean onOptionsItemSelected(MenuItem item) {  switch (item.getItemId()) {  case android.R.id.home:
	
		   onBackPressed();   return true;
	
		  }  return super.onOptionsItemSelected(item);
	
		 }
	
		复制代码
	
		不过在尝试的时分发现,这个方法只返还上一,而不是逻辑指定的,例:A->B->C,从C回笼到A,要是应用onBackPressed(),则回到B,以是过失。到此我们只能应用NavUtils.navigateUpFromSameTask(this);//onSaveInstanceState,不过要及时留存数据。
	上篇:上一篇:Android开发中服务Service的基本使用
下篇:下一篇:android自顶菜单

