基本用法:java
显式ide
Intent intent=new Intent(Activity甲.this,Activity乙.class); startActivity(intent);
传递参数函数
Intent intent=new Intent(Activity甲.this,Activity乙.class); intent.putExtra("参数名","要传的价值,能够是任何类型"); startActivity(intent);
获取参数this
在目标Activity中blog
Intent intent=getIntent(); String data=intent.getStringExtra("参数名");
进阶:get
除了startActivity方法外,还能够使用startActivityForResult方法,感受相似于观察者模式it
startActivityForResult方法第一个参数仍是intent实例,第二个参数为自定义的requestCode代码,定之后能够在Activity乙返回时(按按钮或Back键)做相对应的操做。class
需重写Activity甲中的onActivityResult函数sed
在Activity甲中List
Intent intent=new Intent(Activity甲.this,Activity.乙.class); startActivityForResult(intent,1);
在Activity乙中经过按钮返回Activity甲
Button btnBack=(Button)findViewById(R.id.btnBack); btnBack.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v){ Intent intent=new Intent(); setResult(RESULT_OK,intent); finish(); } });
在Activity乙中经过返回按钮Back(机器上的)返回Activity甲
需重写onBackPressed函数
@Override public void onBackPressed(){ Intent intent=new Intent(); intent.putExtra("参数名","值"); setResult(RESULT_OK,intent); finish(); }
最后在Activity甲中重写onActivityResult函数
@Override protected void on ActivityResult(int requestCode,int resultCode,Intent data){ switch(requestCode){ case 1: if(resultCode=RESULT_OK){ String returnData=data.getStringExtra("参数名"); } } }
其中case 1就是在创建intent时所存放的第二个参数,为requestCode
finish