1.通過intent傳遞數據
通過Intent傳遞方法核心就是通過putEntry來傳遞方法。
傳遞代碼:
intent.putExtra("KEY_HELLO","helloword");
接受代碼:
Intent intent=getIntent();
String value=intent.getStringExtra("KEY_HELLO");
不過需要注意的是,在實際過程中,往往是很多個人寫不同的Activity,那麼爲了保證
key統一,就必須隨時溝通,程序就變的不太好維護,我們可以使用下面的辦法。
2.靜態工廠設計模式傳遞數據
我們讓Activity保留自己的key值,並且封裝成一個靜態函數,那麼
我們只需要傳遞的value就行了。
看下面的代碼
//使用一個靜態方法保證所有的Key值一樣
public static Intent newIntent(Context context,String value)
{
Intent intent=new Intent(context,ActivityDemo.class);
intent.putExtra("KEY",value);
return intent;
}
Intent intent=ActivityDemo.newIntent(getApplicationContext(),"hello");
返回數據給之前的Activity
這時候我們就需要用到兩個方法:
startActivityForResult(intent,0);//第二個參數是請求碼
protected void onActivityResult(int requestcode,int resultcode, Intent data)
需要注意的是第二個函數是隻有第二個頁面退出時纔會調用。
代碼如下:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.putExtra("result","hello ");
setResult(0,intent);
finish();//關閉當前Activity
}
});
protected void onActivityResult(int requestcode,int resultcode,Intent data)
{
super.onActivityResult(requestcode,resultcode,data);
if(requestcode==0&&data!=null)
{
String result=data.getStringExtra("result");
Toast.makeText(getApplicationContext(),result,Toast.LENGTH_LONG);
}
}