【发布时间】:2014-05-11 14:59:31
【问题描述】:
我已经与这个问题斗争了几个小时,并且几乎查看了所有其他关于这个问题的帖子,但找不到我哪里出错了。如果我遗漏了一些简单的东西,请告诉我。
活动 1(承载 CreateFragment)
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
((CreateFragment) getFragmentManager().findFragmentByTag(CreateFragment.TAG)).resultReturned(requestCode, resultCode, data);
}
创建片段:
private void chooseContact() {
Intent chooseContactInappIntent = new Intent( getActivity(), ContactPickerActivity.class );
getActivity().startActivityForResult( chooseContactInappIntent, PICK_CONTACT_REQUEST );
}
public void resultReturned( int requestCode, int resultCode, Intent data ) {
switch ( requestCode ) {
case PICK_CONTACT_REQUEST:
if ( resultCode == Activity.RESULT_OK ) {
//Do Cool Things
default:
break;
}
}
ContactPickerActivity:
@Override
public void onContactSelected( Object data) {
Intent returnIntent = new Intent();
returnIntent.putExtra("data",data);
setResult(RESULT_OK,returnIntent);
finish();
}
Activity One 承载一个 CreateFragment,当用户单击 CreateFragment 中的按钮时,该片段调用 chooseContact() 方法,该方法启动一个新的 ActivityForResult。 ContactPickerActivity 然后向用户显示联系人列表。当用户选择一个联系人时,会调用 onContactSelected 方法创建一个新的意图来传回所选数据,然后调用完成。我认为这会调用基础活动中的 onActivityResult 或 CreateFragment,但两者都没有被调用。
有什么想法吗?
谢谢, 内森
【问题讨论】:
标签: android android-intent android-fragments android-activity