我是碎片的新手,并且在绕过某些概念时遇到一些麻烦。目前,我正在处理两个片段,第一个是我的页面用户界面,第二个是自定义列表视图。两个片段将同时显示在另一个片段之上。在第一个中,用户可以选择日期,然后在数据库调用中使用该日期来获取该日期的列表项。
我想弄清楚的是,首先,如何在两个打开的片段之间传递日期,并在第一个片段中更改日期时更新第二个片段。我希望我的问题很清楚。如果没有,我可以澄清一下。在此先感谢您的帮助。
答案 0 :(得分:2)
我不确定其他好的选择,但你绝对可以做到以下几点。
假设您有一个名为A的活动,它已包含在片段b和c中。您需要将数据从b发送到c。
由于b和c都是活动A的子项,因此他们可以访问A的方法.A还可以访问子片段b和c。因此,要将信息从b传递给c,请在A中创建一个方法,该方法将信息传递给c并从b中调用它。
更具体一点,有关此主题的更多信息,您可以看到official doc。
因此片段可以使用getActivity()
访问Activity实例并轻松调用方法
getActivity().passInfoToC(data);
同样,您的活动可以通过使用findFragmentById()或findFragmentByTag()从FragmentManager获取对Fragment的引用来调用片段中的方法。例如:
ExampleFragment fragment = (ExampleFragment)getFragmentManager().findFragmentById(R.id.example_fragment);
fragment.setData(data);
然后访问一个传递数据的方法。