簡體   English   中英

不使用兩個片段調用onActivityResult()

[英]onActivityResult() not called with two fragments

我有兩個名為HomeworkListFragment和HomeworkFragment的片段。

繼承自->片段

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?

奇怪的是,我錯過了這一行:

super.onActivityResult(requestCode, resultCode, data);

我之前引用了錯誤的行,卻無法弄清原因。 現在我擁有了!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM