Java 活动到碎片
我有3个活动,我想将它们转换为片段,以便实现一个ViewPager在它们之间滑动:Java 活动到碎片,java,android,android-fragments,android-intent,android-viewpager,Java,Android,Android Fragments,Android Intent,Android Viewpager,我有3个活动,我想将它们转换为片段,以便实现一个ViewPager在它们之间滑动: 活动A(左侧) 活动B(中央) 活动C(右侧) 从外部活动调用活动B,并在Intent中向其传递数据。现在,活动B在活动A和C启动时将意向中的数据传递给活动A和C。这里的想法是,B显示一个幻灯片,其中的ImageView每X秒更新一次,A和C显示有关各个图片的信息。因此,我的问题如下: 如何使用片段复制此功能,以便在从片段B滑动到C以及从片段B滑动到A时,可以将适当的数据传递给它们。我目前在我的活动中是这样做的:
Intent a = new Intent(SlideShow.this,MapsActivity.class);
a.putExtra("long", longitude);
a.putExtra("lang", langitude);
pauseSlideShow(i, timeRemaining);
isPaused = true;
startActivity(a)
FragmentPagerAdapter
和FragmentStatePagerAdapter
之间的区别。目前,当我从B启动活动A和C时,我不会在B上调用finish()
,因此当我返回到B时,它的状态与以前完全相同。然而,由于活动A和C支持B,当我从A或C返回到活动B时,我分别对A和C调用finish()
,以结束它们。我如何处理碎片FragmentPagerAdapter
,请确保在getItem()
中创建片段时,将对片段的引用保存在适配器或(最好)活动中的某个位置
在片段B上创建一个返回数据的方法(即getLatLong()
)
在onCreateView()
中的片段A中,您将从活动中获取对片段B的引用,并调用getLatLong()
获取所需的数据viewpager.setOffscreenPageLimit(2)
将片段保存在内存中。这样,当您滑动到片段C时,片段A不会被破坏,因为ViewPager
将在片段C的左侧保留两个片段,即片段A和片段B另一种(可能更好)方法是在活动开始时创建所有三个片段,并在调用
getItem()
时返回适当的片段。通过这样做,您可以使用setTargetFragment()
和getTargetFragment()
来允许片段彼此获取数据。执行此操作时,请记住片段可能有也可能没有可用的UI,因此如果您正在推送数据而不是拉取数据,请确保接收数据的方法检查getView()==null
我不认为在活动之间传递意图时使用ViewPager是必要的,因为所有片段都加载在ViewPager中。你需要在没有意图的情况下重写所有的数据传递是的,我的问题是怎么做?