|
tartActivityForResult :
由Activity1啟動Activity2->執(zhí)行Activity2->在Activity2中調用setResult和finish方法數(shù)據(jù)將返回Activity1并觸發(fā)onActivityResult函數(shù);
實例:
step1:在Activity1中定義全局標志量
private static final int REQUEST_CONNECT_DEVICE = 1;
step2:在Activity1中的按鈕事件觸發(fā)startActivityForResult
Intent serverIntent = new Intent(Activity1.this,Activity.class);
startActivityForResult(serverIntent,REQUEST_CONNECT_DEVICE);
step3:在 Activity2中定義變量名字用于數(shù)據(jù)回傳到Activity1
public static String EXTRA_DEVICE_ADDRESS = "device_address";
step4:在Activity2中觸發(fā)setResut函數(shù)并調用finish方法傳回數(shù)據(jù)
Intent intent = new Intent();
intent.putExtra(EXTRA_DEVICE_ADDRESS, address);
// Set result and finish this Activity
setResult(Activity.RESULT_OK, intent);//其中Activity.RESULT_OK是一個標志,用于咋下一步在Activity1的接收中區(qū)分是那個setResult發(fā)送的數(shù)據(jù)
Toast.makeText(SearchDevice.this,info , 1).show();
finish();//調用finfish方法返回AActivity
step5:完成step4之后會自動進入Activity1中的nActivityResult函數(shù):
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case REQUEST_CONNECT_DEVICE:
// When DeviceListActivity returns with a device to connect
if (resultCode == Activity.RESULT_OK) {
// Get the device MAC address
address = data.getExtras().getString(Activity2.EXTRA_DEVICE_ADDRESS);
}
}
}
|
|