2013-04-22 122 views
2

我是碎片的新手,并且在围绕某些概念时遇到了一些麻烦。目前,我正在处理两个片段,第一个是我的页面用户界面,第二个是自定义列表视图。这两个片段将同时显示在另一个上面。首先,用户可以选择日期,然后将其用于数据库调用以获取该日期的列表项。Android碎片通过相同活动碎片之间的信息

我想弄清楚的是,首先,如何在两个打开的片段之间传递日期,并在第一个日期发生更改时更新第二个片段。我希望我的问题很清楚。如果没有,我可以澄清。在此先感谢您的帮助。

回答

2

我不确定其他不错的选择,但你绝对可以做到以下几点。

假设您有一个名为A的活动,它包含在片段b和c中。您需要将数据从b发送到c。

由于b和c都是活动A的子项,那么他们可以访问A的方法.A也可以访问子项b和c。所以要将信息从b传递给c,在A中创建一个方法,将信息传递给c并从b调用它。

更具体一点,有关此主题的更多信息,可以看到official doc

所以片段可与getActivity()访问活动实例,并方便地调用方法

getActivity().passInfoToC(data); 

同样,您的活性可以通过获取从FragmentManager所述片段的引用,使用findFragmentById调用在该片段中的方法()或findFragmentByTag()。例如:

ExampleFragment fragment = (ExampleFragment)getFragmentManager().findFragmentById(R.id.example_fragment); 
fragment.setData(data); 

然后访问一个方法来传递数据。

+0

好吧,这一切都有道理。那么我会需要一个在c片段中的侦听器,对吗?那么如何使用该侦听器为片段设置日期变量并重新加载? – ubundude 2013-04-22 03:17:58

+0

你为什么需要听众?在setdata中,您可以进行更改 – stinepike 2013-04-22 05:47:53