java - onActivityResult() 未使用两个 fragment 调用

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

我有两个名为 HomeworkListFragment 和 HomeworkFragment 的 fragment 。

两者都继承自 -> fragment

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();    
    }
}

但是,这个方法永远不会被调用!

我已在 list 中声明了它们:

<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);

我之前引用了错误的行,但无法弄清楚原因。现在我拥有了!

关于java - onActivityResult() 未使用两个 fragment 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25593689/

相关文章:

android - 如何将对象数组发送到新 Intent

android - Android 中 onTap 和 onTouchEvent 的区别

android - 您应用的 AndroidManifest.xml 中的元数据标记没有正确的值。 - 谷歌地图

android - Intent 过滤器 : How to accept only "text/plain" intents containing the word "spaghetti"

java - 即使数据通过,Android Intent 也是空的

android - 阻止 SD 卡上的图像出现在图库中?

Java 使用文件中的函数

java - 使用 Apache Beam Java SDK 读取 Parquet 文件,无需提供架构

java - 以日期时间格式java添加小时

java - JList 填充了不显示任何内容的 vector