如何用片段处理事件(按钮点击等)



我仍然有点困惑,在片段中放什么,在活动中放什么。

一般来说,我有一个带有导航抽屉的应用程序,里面有一个项目,比如笔记(在那里创建了一个几乎空白的页面,我可以在那里放一天的笔记)和遗愿清单(这只是打开一个列表,我可以添加和删除项目)

什么是活动,什么是片段。目前,我的NavDrawer中的每个按钮都打开了一个带有fragment的活动,并实现了fragment中定义的接口,用于处理所有按钮单击。

所以你可以看到交换到一个新的活动,当点击,而不仅仅是改变片段。

我的问题是我该如何处理。

  1. 就像现在一样。NavDrawer中的每个项目都链接到一个活动,该活动实现了来自片段的接口,以处理按钮点击等。

  2. 主活动实现来自片段的所有不同的接口(事件),并且只是切换片段。这应该是更顺畅的用户,但我觉得男人的活动将只是有这么多的功能为所有不同的片段。

  3. (如的事件。按钮点击)在片段本身处理,主要活动只是切换片段。这对于用户来说应该是流畅的,并且不会创建如此大的主活动。这让我有点困扰,因为我认为片段应该只是定义布局,而不是处理动作。(标准的例子与navdrawer从android studio也转发点击从片段到它的活动)

目前唯一的时刻,我在没有活动的情况下交换片段是如果有人会去详细页面。就像点击一个愿望清单项目来获得更多的细节。

也许有人能解释一下使用什么方法,或者在不同的时间使用这些方法。

带例句的问题简写版:

WhatsApp(不能链接,因为我是新用户):

如何实现标签呼叫,聊天,联系人

这就是我用google搜索得到的结果:

这是我发现建议方法3:http://weimenglee.blogspot.de/2013/08/android-tip-handling-events-in-fragment.html

这是来自google的开发者。他们创建了一个额外的类来处理事件:https://developer.android.com/training/implementing-navigation/nav-drawer.html

From Fragments | Android Developer:

Fragment表示Activity中的一个行为或用户界面的一部分。

所以片段处理按钮点击是完全合适的,就像上面的选项3。

下面是我使用的规则:如果片段可以处理整个行为,那么它就应该这样做。如果fragment不能处理整个行为,那么在activity上调用一个方法来通知它事件发生了,并让activity通过调用fragment上的方法来"转发"该行为。

我最近编写了一个功能,由ViewPager在另一个片段内处理片段。对我来说,它有助于将要执行的操作分组为责任,并询问"哪个片段/活动应该负责……?"

最新更新