为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

蝴蝶不菲 2019-06-24 17:08:02
片段和活动之间的通信-最佳实践这个问题主要是就处理我的应用程序的最佳方式征求意见。我有三个碎片被一个活动处理。片段A有一个可点击元素,照片和片段B有4个可点击元素,按钮。另一个片段在点击照片时只显示细节。我在用ActionBarSherlock。前进和后退按钮需要改变照片的下一个或先前的姿势,分别。我可以把照片和按钮放在同一个片段里,但我想把它们分开,以防我想在平板电脑里重新排列它们。我需要一些建议-我应该把碎片A和B结合起来吗?如果不是,我需要弄清楚如何为3个可点击的项实现一个接口。我考虑过使用Roboguice,但我已经在使用SherlockFragmentActivity进行扩展了,所以这是不可以的。我看到提到了Otto,但我没有看到关于如何将其包含在项目中的很好的教程。你认为最佳设计实践应该是什么?我还需要帮助,弄清楚如何在片段和活动之间进行交流。我想在应用程序中保留一些数据“全局”,比如位姿ID。除了股票Android开发人员的信息之外,我还能看到一些示例代码吗?这没什么用。顺便说一句,我已经将关于每个姿势的所有信息存储在SQLite数据库中。这是最简单的部分。
查看完整描述

3 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

在活动和片段之间进行通信的最简单方法是使用接口。其基本思想是在给定的片段A中定义一个接口,并让活动实现该接口。

一旦它实现了该接口,您就可以在它覆盖的方法中做您想做的任何事情。

接口的另一个重要部分是,您必须从片段中调用抽象方法,并记住将其转换到活动中。如果未正确执行,则应捕获ClassCastException。

有一个很好的教程简单开发者博客如何才能做到这类事情。

希望这对你有帮助!


查看完整回答
反对 回复 2019-06-24
?
当年话下

TA贡献1890条经验 获得超9个赞

它是通过回调接口实现的:首先,我们必须创建一个接口:

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......
                }
            });


查看完整回答
反对 回复 2019-06-24
  • 3 回答
  • 0 关注
  • 375 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信