And*_*oid 8 java android android-fragments android-3.0-honeycomb
我读了很多关于片段的文章,但我仍然对如何做什么感到困惑.
我有一个MainActivity,它并排显示两个片段.在其中一个片段中,我有一个按钮,并在按钮的片段布局XML中定义
android:onClick="buttonClicked"
Run Code Online (Sandbox Code Playgroud)
现在我想实现该方法
public void buttonClicked(View view)
Run Code Online (Sandbox Code Playgroud)
我原以为这必须在FragmentA.java中实现,而不是在MainActivity.java中实现.但它只有在MainActivity.java中实现该方法时才有效.这是为什么?对我来说没有意义.Pre Honeycomb属于一项活动的方法保留在该活动中,现在在平板电脑上我将许多活动合并到一个MainActivity并且所有不同的方法合并在一起?那么你在FragmentA.java中提出了什么呢?如果你必须开始自己的活动,因为这个应用程序在掌上电脑上运行,那么onClick方法不应该在MainActivity中,而是在需要调用的Activity中.我此刻很困惑......
我不确定具体问题是什么,但这也许会有所帮助。
来自 Android 文档Fragment:
您应该将每个片段设计为模块化且可重用的活动组件。也就是说,因为每个片段都通过自己的生命周期回调定义了自己的布局和自己的行为,所以您可以在多个活动中包含一个片段,因此您应该进行重用设计,并避免直接从另一个片段操作一个片段。
也就是说,您永远不应该从另一个片段操作一个片段;相反,这应该通过底层 Activity 来完成。请阅读本文中的“创建活动的事件回调”部分以获取更多信息(这很重要!!)。
另一方面,如果您希望按钮在其Fragment自身内执行操作(即,如果您希望Button单击以更改片段内的文本TextView),则应该在 中实现此操作Fragment,而不是Activity(这是因为结果行为包含在 中Fragment,与父级无关Activity)。
发表评论,我可以澄清我的帖子是否令人困惑......我最近才开始了解Fragment自己:)。
| 归档时间: |
|
| 查看次数: |
8551 次 |
| 最近记录: |