猿问

片段和活动之间的通信-最佳实践

片段和活动之间的通信-最佳实践

这个问题主要是就处理我的应用程序的最佳方式征求意见。我有三个碎片被一个活动处理。片段A有一个可点击元素,照片和片段B有4个可点击元素,按钮。另一个片段在点击照片时只显示细节。我在用ActionBarSherlock。

前进和后退按钮需要改变照片的下一个或先前的姿势,分别。我可以把照片和按钮放在同一个片段里,但我想把它们分开,以防我想在平板电脑里重新排列它们。

我需要一些建议-我应该把碎片A和B结合起来吗?如果不是,我需要弄清楚如何为3个可点击的项实现一个接口。

我考虑过使用Roboguice,但我已经在使用SherlockFragmentActivity进行扩展了,所以这是不可以的。我看到提到了Otto,但我没有看到关于如何将其包含在项目中的很好的教程。你认为最佳设计实践应该是什么?

我还需要帮助,弄清楚如何在片段和活动之间进行交流。我想在应用程序中保留一些数据“全局”,比如位姿ID。除了股票Android开发人员的信息之外,我还能看到一些示例代码吗?这没什么用。

顺便说一句,我已经将关于每个姿势的所有信息存储在SQLite数据库中。这是最简单的部分。


蝴蝶不菲
浏览 376回答 3
3回答

慕哥9229398

在活动和片段之间进行通信的最简单方法是使用接口。其基本思想是在给定的片段A中定义一个接口,并让活动实现该接口。一旦它实现了该接口,您就可以在它覆盖的方法中做您想做的任何事情。接口的另一个重要部分是,您必须从片段中调用抽象方法,并记住将其转换到活动中。如果未正确执行,则应捕获ClassCastException。有一个很好的教程简单开发者博客如何才能做到这类事情。希望这对你有帮助!

当年话下

它是通过回调接口实现的:首先,我们必须创建一个接口:public interface UpdateFrag {      public void updatefrag();     }在活动中执行以下代码:UpdateFrag updatfrag ;public void updateApi(UpdateFrag listener) {         updatfrag = listener;    }从必须在活动中触发回调的事件:updatfrag.updatefrag();在片段中,实现Createview中的接口,执行以下代码: ((Home)getActivity()).updateApi(new UpdateFrag() {                 @Override                 public void updatefrag() {                    .....your stuff......                 }             });
随时随地看视频慕课网APP

相关分类

Android
我要回答