Activity回傳資料方法startActivityForResult onActivityResult

鴨脖發表於2012-07-22

有兩個Activity,A,B,由A啟動B,並傳資料給B,B在經過處理後把資料傳回給A。舉個例子,A是主程式,B是設定引數的Activity,在B修改設定後,要讓A重新讀取設定,就要用到回傳資料.主要是兩個函式startActivityForResult onActivityResult
先是A傳B:

1
2
3
4
5
6
7
8
    	Bundle bd = new Bundle();
             bd.putString("Dir", "/sdcard/");
    	Intent intent=new Intent();
    	intent.putExtras(bd);
      	intent.setClass(main.this,location.class);
    	startActivityForResult(intent,2);
            //這裡的2是我隨便寫的,代表requestCode,就是用來做個標記,網上的例子好像都是寫requestCode,
        //結果我在測試時A沒接收到,這裡必須填正數

然後就是B接收再傳回:

1
2
3
4
Intent it = new Intent(); 
it.putExtra("Dir",(String) tv1.getText());
setResult(2, it);//2與前面的A裡的2對應
finish();

A裡的接收程式碼:

1
2
3
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    	//B返回時觸發
     }

相關文章