您的位置:首页 > 移动开发 > Android开发

从子activity返回数据给父activity------------Starting Activities and Getting Results

2013-04-17 10:10 441 查看
有时候我们希望子activity可以向父activity返回数据,比如我们利用StartActivity来打开一个联

系人的页面,希望用户可以选择一个联系人,并且返回给父Activity。

要实现这样的效果,可以使用startActivityForResult(Intent, int)这里的int值是用来标识动作的

(identifying the call)。结果我们可以在父activity的onActivityResult中获取。

当子Activity退出的时候,可以调用setResult(int)来返回数据给父Activity,必须要提供result

code,例如RESULT_CANCELED, RESULT_OK, 或者任何从RESULT_FIRST_USER开始的自定义结果。我们

也可以选择返回一个有附加数据的intent,

public class MyActivity extends Activity {
...

static final int PICK_CONTACT_REQUEST = 0;

protected boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
// When the user center presses, let them pick a contact.
startActivityForResult(
new Intent(Intent.ACTION_PICK,
new Uri("content://contacts")),
PICK_CONTACT_REQUEST);
return true;
}
return false;
}

protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == PICK_CONTACT_REQUEST) {
if (resultCode == RESULT_OK) {
// A contact was picked.  Here we will just display it
// to the user.
startActivity(new Intent(Intent.ACTION_VIEW, data));
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android Intent Activity