基本用法: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