当前位置: 代码迷 >> 综合 >> 从子activity返回数据给父activity------------Starting Activities and Getting Results
  详细解决方案

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

热度:75   发布时间:2024-01-20 10:29:44.0

有时候我们希望子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));
}
}
}
}


  相关解决方案