android - 在 Android 中,我应该在 fragment 或 Activity 中接收 fragment 点击事件吗?

标签 android android-fragments android-activity

例如,我对接收 Fragment 中的点击事件感到困惑,我应该将此点击事件传递到我的 Activity 还是在 Fragment 本身中处理它?<​​/p>

我也在尝试在我的 Activity 中提供超过 1 个 fragment 的情况,例如, Activity 的平板电脑版本。

这也提出了我的另一个问题,我在我的 Activity 和我的 fragment 中创建了一个菜单,我应该在哪里检查

 onOptionsItemSelected

在 Activity 或 fragment 中?

我很困惑我应该在哪里处理点击事件和菜单。

最佳答案

您可以在 fragment 内部或 Activity 本身处理点击事件,这取决于您要实现的目标。就像假设如果 onClick 事件做了一些由 fragment 本地处理的工作,那么你应该在 fragment 本身中处理它,但是如果 onClick 事件做了一些与其他 fragment 相关的工作(即同一 Activity 中包含的其他 fragment )那么您可能应该使用回调方法(监听器)让 Activity 处理点击事件。

例如。假设您有两个 fragment ,即 LogInFragment 和 LogOutFragment,并且在 Activity 中一次只显示一个 fragment 。然后假设 Activity 开始时您正在显示 LogInFragment,它有一个名为 Log In 的按钮。单击按钮时,您可以在 Activity 中处理 onClick 事件,以便它可以用 LogOutFragment 替换此 fragment 。

考虑另一种情况,假设在 LogInFragment 中单击“登录”按钮时,您只想将按钮的文本更改为“注销”,然后这可以在 fragment 本身内部处理,所以总体而言,只需考虑您要尝试的内容相应地实现和处理事件。

第二部分:onOptionsItemSelected() 方法放在 Activity 类中,它处理菜单项的点击。现在,如果您在 fragment 内使用另一个菜单,那么这个特定菜单项的点击/选择事件应该在 fragment 的类内处理,相当简单。

关于android - 在 Android 中,我应该在 fragment 或 Activity 中接收 fragment 点击事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31902812/

相关文章:

android - 使用 VCF 文件删除旧号码

Android 应用程序与 Arduino 串行通信不同步

android - 如何在使用 Dagger 2 时将数据传递给子 fragment

android - 存在键盘时调整 ListView 的大小

android - 我的 Activity 没有显示线

android - getFromLocationName 错误,服务不可用。一直在工作,停止

android - 如何在 SQLite 中获取每日总金额

android - 您将如何在 Android 中创建弹出 View ,例如 Facebook 评论?

android - 首次启动时首次加载时, Activity 完成得太快

android - 无法从启动器类型的 Activity 启动不同的 Activity