|
tartActivityForResult :
由Activity1启动Activity2->执行Activity2->在Activity2中调用setResult和finish方法数据将返回Activity1并触发onActivityResult函数;
实例:
step1:在Activity1中定义全局标志量
private static final int REQUEST_CONNECT_DEVICE = 1;
step2:在Activity1中的按钮事件触发startActivityForResult
Intent serverIntent = new Intent(Activity1.this,Activity.class);
startActivityForResult(serverIntent,REQUEST_CONNECT_DEVICE);
step3:在 Activity2中定义变量名字用于数据回传到Activity1
public static String EXTRA_DEVICE_ADDRESS = "device_address";
step4:在Activity2中触发setResut函数并调用finish方法传回数据
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的接收中区分是那个setResult发送的数据
Toast.makeText(SearchDevice.this,info , 1).show();
finish();//调用finfish方法返回AActivity
step5:完成step4之后会自动进入Activity1中的nActivityResult函数:
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);
}
}
}
|
|