我有一个从片段开始活动的场景。在活动中,我必须将一些数据发送回片段。为此,我使用startActivityForResult(intent, requestCode)
从片段开始活动,然后获取onActivityResult()
中的结果。将数据从活动传递到片段完成
虽然这段代码对我来说工作正常,但问题是我正在使用SceneTransitionAnimation
将从片段到活动的ImageView
设置为动画。这需要将一个包从Fragment传递给Activity。问题是startActivityForResult()
只在碎片中占用两个参数,所以动画正在打破。
所以,我想问我如何确保在保持动画正常工作的同时从Activity获取数据?有没有其他方法可以通过它将Activity中的数据发送到Fragment?
P.S-我可以使用SharedPreferences
和保存活动数据,完成它,并在片段的onResume()
从SharedPreferences
读取数据。但是,我想避免使用它。
更新: -
// 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);
在活动和片段中使用setResult(),在onResume()方法中访问它 –
我已经在使用它。我已经指定了,但是由于我无法传入包作为第三个参数,因此它正在打破动画。我希望所有这些都能够工作,我能够部分实现。 –
比使用sharedpreference或广播接收机 –