此示例演示了activity间,利用ActivityResult机制进行数据交互
画面ReceiveResult中,按下按钮后,调用如下代码启动画面SendResult
Intent intent = new Intent(ReceiveResult.this, SendResult.class);
startActivityForResult(intent, GET_CODE);
startActivityForResult函数的第2个参数设置了requestCode,在得到结果时,可以区分是谁返回的值
画面SendResult中,返回结果code和数据
setResult(RESULT_OK, (new Intent()).setAction("Corky!"));
第一个参数是resultCode
主画面ReceiveResult的onActivityResult方法处理其他画面的返回值
if (requestCode == GET_CODE) {
// We will be adding to our text.
Editable text = (Editable)mResults.getText();
if (resultCode == RESULT_CANCELED) {
text.append("(cancelled)");
} else {
text.append("(okay ");
text.append(Integer.toString(resultCode));
text.append(") ");
if (data != null) {
text.append(data.getAction());
}
}
text.append("\n");
}
首先检查requestCode是否一致,然后根据resultCode的不同进行处理
初始显示
弹出画面
得到数据刷新