Android 完成时将数据从活动传递到片段

Android 完成时将数据从活动传递到片段,android,android-fragments,android-animation,Android,Android Fragments,Android Animation,我有一个场景,在这个场景中,我从一个片段开始一个活动。在活动中,我必须将一些数据发送回片段。为此,我使用startActivityForResult(intent,requestCode)从片段开始活动,然后在onActivityResult()中捕获结果 虽然这段代码对我来说很好,但问题是我正在使用SceneTransitionAnimation将ImageView从片段动画到活动。这需要将一个包从片段传递到活动。问题是startActivityForResult()只在片段中获取两个参数,因

我有一个场景,在这个场景中,我从一个片段开始一个活动。在活动中,我必须将一些数据发送回片段。为此,我使用
startActivityForResult(intent,requestCode)
从片段开始活动,然后在
onActivityResult()中捕获结果

虽然这段代码对我来说很好,但问题是我正在使用
SceneTransitionAnimation
ImageView
从片段动画到活动。这需要将一个包从片段传递到活动。问题是
startActivityForResult()
只在片段中获取两个参数,因此动画正在中断

因此,我想问一下,如何确保在保持动画正常工作的同时从活动中获取数据?是否有其他方法可以将数据从活动发送到片段

p.S-我可以使用
SharedReferences
在活动中保存数据,完成它,然后在片段的
onResume()
中读取
SharedReferences
中的数据。但是,我想避免使用它

更新:-

// This is the shared view
final ImageView imageView = (ImageView) view.findViewById(R.id.ivProperty);
final Intent intent = new Intent(getActivity(), PropertyDetailsScreen.class);
final View sharedView = imageView;
final String transitionName = getString(R.string.square_blue_name);
// This is the animation
final ActivityOptionsCompat transitionActivityOptions = ActivityOptionsCompat
                    .makeSceneTransitionAnimation(getActivity(), sharedView, transitionName);
// Getting bundle from the animation
final Bundle bundle = transitionActivityOptions.toBundle();
// Starting the activity with animation
getActivity().startActivity(intent, bundle);
这需要将一个包从片段传递到活动。问题是startActivityForResult()在片段中只接受两个参数

即使您使用的是
startActivityForResult

    Intent intent = new Intent(NextActivity.class, this);
    Bundle bundle = new Bundle();
    ...
    intent.putExtras(bundle);
    startActivityForResult(intent, REQUEST_CODE);
这需要将一个包从片段传递到活动。问题是startActivityForResult()在片段中只接受两个参数

即使您使用的是
startActivityForResult

    Intent intent = new Intent(NextActivity.class, this);
    Bundle bundle = new Bundle();
    ...
    intent.putExtras(bundle);
    startActivityForResult(intent, REQUEST_CODE);


使用getter、setter方法。在活动中设置数据并在片段中获取该数据

使用getter、setter方法。在活动中设置数据并在片段中获取该数据

使用ActivityCompat您可以实现相同的,它提到我们可以在startActivityForResult中传递bundle使用ActivityCompat您可以实现相同的,它提到我们可以在startActivityForResult中传递bundle在活动和片段中使用setResult(),在onResume()方法中访问它我已经在使用它了。我已经指定了它,但是它破坏了动画,因为我不能作为第三个参数传入bundle。我希望所有这些都能正常工作,我可以部分实现。除了使用SharedReference或broadcast Receiver,还可以使该数据变量保持静态并在onResume()中获取值@ShoebSiddique static不应以这种方式使用,因为在某些情况下它可能会变为null并引入错误。所以,我一般避免使用它。在activity和fragment中使用setResult(),在onResume()方法中访问它我已经在使用它了。我已经指定了它,但是它破坏了动画,因为我不能作为第三个参数传入bundle。我希望所有这些都能正常工作,我可以部分实现。除了使用SharedReference或broadcast Receiver,还可以使该数据变量保持静态并在onResume()中获取值@ShoebSiddique static不应以这种方式使用,因为在某些情况下它可能会变为null并引入错误。所以,我一般都避免这样做。我已经尝试过了,但在这种情况下,动画不起作用。该捆绑包不是一个普通捆绑包,而是一个
SceneTransitionAnimation
捆绑包,当以这种方式传递时,该捆绑包不起作用。您能否发布代码,说明在
startractivityforresult
startractivity
的情况下如何设置SceneTransitionAnimation捆绑包?您现在可以看到更新问题了吗?在这种情况下,我让动画正常运行,但无法恢复数据。另外,将
getActivity()
startActivityForResult()
一起使用意味着结果将出现在
活动中,而不是出现在
片段中。我已经尝试过了,但在这种情况下,动画不起作用。该捆绑包不是一个普通捆绑包,而是一个
SceneTransitionAnimation
捆绑包,当以这种方式传递时,该捆绑包不起作用。您能否发布代码,说明在
startractivityforresult
startractivity
的情况下如何设置SceneTransitionAnimation捆绑包?您现在可以看到更新问题了吗?在这种情况下,我让动画正常运行,但无法恢复数据。另外,将
getActivity()
startActivityForResult()
一起使用意味着结果将出现在
活动中,而不是出现在
片段中。创建一个自定义类,定义该类中变量的类型,然后为这些变量生成getter、setter方法。使用该类的对象访问这些方法我如何将该类的对象从一个活动传递到另一个片段?创建自定义类serializable,并借助意图从一个活动传递到另一个片段。@Rohan kandwal如果您对答案满意,请勾选它。我将等待看是否有更突出的答案,如果没有,将标记您的答案。创建自定义类定义该类中变量的类型,然后为这些变量生成getter、setter方法。使用该类的对象访问这些方法我如何将该类的对象从一个活动传递到另一个片段?创建自定义类serializable,并借助意图从一个活动传递到另一个片段。@Rohan kandwal如果您对答案满意,请勾选它。我将等待看是否有更突出的答案,如果没有,我知道这一点,但它在片段中有什么帮助呢?它看起来像。。它应该知道,但它对碎片有什么帮助呢?它看起来像。。它应该