onActivityResult()没有用两个片段调用

时间:2014-08-31 15:52:25

标签: java android android-intent android-activity android-fragments

我有两个名为HomeworkListFragment和HomeworkFragment的片段。

BOTH INHERIT FROM - >片段

Intent i = new Intent(getActivity(),HomeworkPagerActivity.class);
i.putExtra(HomeworkFragment.EXTRA_HOMEWORK_ID, homework.getId());
startActivityForResult(i,REQUEST_DELETE_HOMEWORK_ID);

这是我从MyListFragment启动MyFragment的方法。

在我结束之后,我想从MyFragment中调用它:

Intent i = new Intent();
i.putExtra(EXTRA_DELETE_HOMEWORK_ID, mHomework.getId());
getActivity().setResult(Activity.RESULT_OK, i);
//Toast.makeText(getActivity(), "deleting?", Toast.LENGTH_SHORT).show();  
//getActivity().finish();
NavUtils.navigateUpFromSameTask(getActivity());

回到MyListFragment中我实现了:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Toast.makeText(getActivity(), "HERE", Toast.LENGTH_SHORT).show();    
    if  (requestCode == REQUEST_DELETE_HOMEWORK_ID){
        String filename = data.getStringExtra(HomeworkFragment.EXTRA_DELETE_HOMEWORK_ID);
        Toast.makeText(getActivity(), "ID: "+filename, Toast.LENGTH_SHORT).show();    
    }
}

但是,永远不会调用此方法!

我已经在我的清单中声明了它们:

<activity
        android:name=".HomeworkListFragment"
        android:label="@string/app_name"
        android:launchMode="singleTop" >
        <meta-data android:name="android.support.PARENT_ACTIVITY"
            android:value=".HomeworkTabFragment"/>
    </activity>
    <activity
        android:name=".HomeworkFragment"
        android:label="@string/app_name" >
        <meta-data android:name="android.support.PARENT_ACTIVITY"
            android:value=".HomeworkListFragment"/>
    </activity>

是答案的一部分:NavUtils.navigateUpFromSameTask(getActivity());

是否重新创建了MyListFragment?

1 个答案:

答案 0 :(得分:0)

奇怪的是,我错过了这条线:

super.onActivityResult(requestCode, resultCode, data);

之前我曾引用错误的行,但无法找出原因。现在我拥有它!